一、关于Object类中的 wait 和 notify 方法
- wait 和 notify 方法不是线程对象的方法,是java中任何一个java对象都拥有的方法,因为这个是Object类中自带的方法。
- wait() 和 notify() 方法的作用:
Object o = new Object();
- o.wait(): 让正在o对象上活动的线程进入无期限等待状态,直到被唤醒为止。
- o.notify(): 唤醒正在o对象上等待的线程。
—— notifyAll()方法:这个方法是唤醒o对象上处于等待的所有线程。
二、生产者和消费者模式
- 使用 wait() 和 notify() 方法实现“生产者和消费者模式”。
- 什么是“生产者和消费者模式”?
—— 生产线程负责生产,消费线程负责消费。生产线程和消费线程要达到均衡。
注:这是一种特殊的业务需求,在这种特殊的情况下需要使用到 wait() 和 notify() 方法。 - wait和notify方法不是线程对象的方法,是普通java对象都有的方法。
- wait方法和notify方法建立在线程同步的基础之上。因为多线程要同时操作同一个对象。有线程安全问题。
- wait 和 notify 方法的作用:
- wait方法作用: o.wait()让正在o对象上活动的线程t进入等待状态,并且释放掉t线程之前占有的o对象的锁。
- notify方法作用: o.notify()让正在o对象上等待的线程唤醒,只是通知,不会释放o对象上之前占有的锁。
- 什么是“生产者和消费者模式”?
- 模拟生产者和消费者模式
/* 模拟生产者和消费者模式 假设List集合是仓库,只能存储1个数据 做到生产一个数据消费一个数据 */ public class ThreadTest07 { public static void main(String[] args) { //创建一个仓库 List list = new ArrayList(); //生产线程 Thread<