type
status
date
slug
summary
tags
category
icon
password
URL
Sep 1, 2022 09:23 AM
等待唤醒案例:线程之间的通信
创建一个顾客线程(消费者):告知老板要的包子的种类和数量,调用wait方法,放弃cpu的执行,进入到WAIING状态(无限等待)
创建一个老板线程(生产者):花了5秒做包子,做好包子之后,调用notify方法,唤醒顾客吃包子
注意:
顾客和老板线程必须使用同步代码块包裹起来,保证等待和唤醒只能有一个执行
同步使用的锁对象必须保证唯一
只有锁对象才能调用wait和notify方法
Object类中的方法
void wait()
其她线程调用此对象的notify()方法或notifyALL()方法前,导致当前线程等待。
void notify()
唤醒在此对象监视器上等待的单个线程
会继续执行wait方法之后的代码