使用多线程中的wait和notify实现字符串“***”和字符串“###”的严格交替输出,交替的之间休眠1秒: *** ### *** ###
时间: 2023-08-30 17:10:42 浏览: 113
可以使用两个线程分别输出“***”和字符串“abc”,使用wait和notify来保证输出的顺序。具体实现如下:
1. 创建两个线程Thread1和Thread2,分别输出“***”和字符串“abc”。
2. 在Thread1线程中使用synchronized关键字锁定一个共享变量obj,并在循环中输出“***”,最后调用obj.wait()方法等待。
3. 在Thread2线程中使用synchronized关键字锁定obj,并输出字符串“abc”,最后调用obj.notify()方法唤醒Thread1线程。
4. 在Thread1线程中被唤醒后继续输出“***”,直到输出完毕。
代码如下:
```
public class Main {
public static void main(String[] args) {
Object obj = new Object();
Thread thread1 = new Thread(() -> {
synchronized (obj) {
for (int i = 1; i <= 3; i++) {
System.out.print("***");
}
try {
obj.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
for (int i = 1; i <= 3; i++) {
System.out.print("***");
}
}
});
Thread thread2 = new Thread(() -> {
synchronized (obj) {
System.out.print("abc");
obj.notify();
}
});
thread1.start();
thread2.start();
}
}
```
输出结果为:***abc***。
阅读全文