package test;
public class TestSync {
public static void main(String args[]) {
Target t = new Target();
new ThreadA(t).start();
new ThreadB(t).start();
}
}
class Target {
String msg = "<我是线程要访问的对象>";
public void show() {
char[] msgchars = msg.toCharArray();
for (int i = 0; i < msgchars.length; i++) {
System.out.print(msgchars[i]);
try {
Thread.sleep(1000);
} catch (Exception e) {
}
}
}
}
class ThreadA extends Thread {
Target target;
public ThreadA(Target target) {
this.target = target;
}
public void run() {
synchronized (target) {// 同步对象
target.show();
}
}
}
class ThreadB extends Thread {
Target target;
public ThreadB(Target target) {
this.target = target;
}
public void run() {
synchronized (target) {// 同步对象
target.show();
}
}
}
分享到:
相关推荐
举例说明。 - **同步与异步的概念**: - **同步**:当一个操作开始后,只有这个操作完成之后才能继续执行后面的代码,即同步操作需要等待其完成才会继续执行后续代码。 - **异步**:当一个操作开始后,不需要等待...
**举例说明**: 假设有一个简单的生产者-消费者模型。其中,线程A(生产者)负责生产包子,线程B(消费者)负责消费包子。为了避免线程B在没有包子的情况下消费,以及避免线程A在包子过多的情况下继续生产导致内存...
举例说明: ```java class ThreadTest { public static void main(String args[]) { Thread t = Thread.currentThread(); t.setName("单线程"); t.setPriority(8); // 设置线程优先级 System.out.println("The...
并发编程是现代软件开发中不可或缺的一部分,尤其是在Java语言中...在面试中回答这类问题时,不仅要能够解释理论,还要能够举例说明实际应用场景和解决方案,这样才能向面试官展示出自己深入理解和实践并发编程的能力。
举例说明。 答:如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个...
举例说明。 同步是指一个任务的执行需要依赖于另一个任务的完成;异步是指任务的执行不需要依赖其他任务的完成。同步通常在有依赖关系的任务需要按照一定顺序执行时使用,例如线程同步。异步则用于不依赖其他任务...
- **等待阻塞**:线程调用`sleep()`或`wait()`方法进入等待阻塞状态。 - **同步阻塞**:线程在获取synchronized同步锁失败时会进入同步阻塞状态。 - **其他阻塞**:如I/O阻塞等。 - **Sleep与Wait的区别:** - ...
举例说明。** - **同步**:线程在获得资源前会一直等待,直到资源可用。 - **异步**:线程将请求发送给资源后立即继续执行,当资源就绪时通知线程。 - 同步适用于需要确保操作顺序的情况,如银行转账。 - 异步适用于...
举例说明。** - 同步:等待操作完成后再继续执行,适用于需要立即响应的情况。 - 异步:提交任务后立即返回,适用于耗时较长的操作。 **49. 下面两个方法同步吗?(自己发明)** 问题未给出具体的代码片段,无法...
举例说明。 - **同步**:执行过程是阻塞的,直到任务完成才会继续执行后面的代码。 - **异步**:执行过程是非阻塞的,可以在等待任务完成的同时执行其他代码。 - 示例:网络请求可以采用异步方式处理,以提高程序...
**答案**: 不可以直接从`static`方法中调用非`static`方法,因为非`static`方法依赖于对象的实例,而`static`方法是在类级别上执行的。 #### 14. `Integer`与`int`的区别 **问题**: `Integer`与`int`的区别 **...
举例说明。 同步操作意味着在某个任务完成之前,后续任务无法继续执行,例如:线程中的`synchronized`方法。异步操作允许在等待某个任务完成的同时,继续执行其他任务,例如:事件监听器。 #### 49\. 下面两个方法...
- `StringBuffer`是可变的,可以安全地在多线程环境中使用。 **35. 如何把一段逗号分割的字符串转换成一个数组?** 可以使用`split`方法,例如: ```java String s = "a,b,c,d"; String[] arr = s.split(","); ```...
举例说明。 如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要...
举例说明。 - **答案**: - 同步:请求发送后必须等待响应完成。 - 异步:请求发送后无需等待响应完成。 - 使用场景:高并发场景下通常使用异步。 ##### 49.下面两个方法同步吗?(自己发明) - **答案**:...
### Java面试宝典知识点解析 #### 一、Java基础部分 **1.... java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop() 和 suspend() 方法为何不推荐使用?** - 可以通过继承 `Thread...