买卖包子案例——等待唤醒机制

其中,多个线程必须使用的是同一个锁对象;

等待 wait 和唤醒 notify 的也就是这个对象监视器及锁对象的正在等待的单个线程,若多个,谁等的时间长唤醒谁;

代码实现:

从顾客消费者来买包子开始:

使用的是线程类Thread类的匿名内部类的匿名对象方式创建线程;

同步代码块的方式实现线程同步即解决线程安全问题;

 此时,消费者线程类从waiting状态被唤醒,

添加下消费者顾客被唤醒后的操作:

整个程序运行结果:

整个代码写在主线程即main线程(main方法中),当然可以运行;

添加while( true ) 之后,无限循环:

原文地址:https://www.cnblogs.com/wmqiang/p/10666925.html