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

Posted wmqiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了买卖包子案例——等待唤醒机制相关的知识,希望对你有一定的参考价值。

技术图片

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

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

代码实现:

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

技术图片

 

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

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

技术图片

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

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

技术图片

 

整个程序运行结果:

技术图片

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

 

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

技术图片

 

以上是关于买卖包子案例——等待唤醒机制的主要内容,如果未能解决你的问题,请参考以下文章

等待与唤醒案例

chapter19等待与唤醒案例线程池Lambda表达式

阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_8_等待唤醒机制代码实现_包子类&包子铺类

等待唤醒机制

java之等待唤醒机制(线程之间的通信)

通过生产者消费者案例理解等待唤醒机制和虚假唤醒