// 线程之间的通信,类似与订阅者和消费者之间的关系,比如一个线程生产包子,另一个线程用来吃包子
// 线程之间的通信,前提: 同一个对象中线程的通信
public class Demo28Class extends Thread {
public static void main(String[] args) {
Object obj1 = new Object();
// 使用匿名类生成第一个对象(顾客)
new Thread(){
public void run(){
synchronized (obj1){
System.out.println("我是一个吃包子的人,但是老板包子没有做好,我需要等待........");
try {
// 开始等待
obj1.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("老板做好了,我可以开吃了,真好吃..........");
}
}
}.start();
// 使用匿名类生成第二个对象(老板)
new Thread(new Runnable() {
@Override
public void run() {
synchronized (obj1) {
System.out.println("刚才有个人要吃包子,我要赶紧开始做了。。。。。。。");
try {
// 解除堵塞
obj1.notify();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("做了好久终于做好了。。。。。。。");
}
}
}).start();
}
}
java线程之间的通信
最新推荐文章于 2024-07-14 02:44:52 发布