5.2 线程通信的设计思想
目录介绍
- 01.线程间通信的两种方式
- 1.1 wait()/notify()
- 1.2 wait()方法使用注意事项
- 1.3 notify()方法使用注意事项
- 1.4 wait()/notify()协作
- 02.Condition实现等待/通知
- 2.1 Condition简单介绍
- 2.2 Condition实现方式
01.锁池和等待池
- 锁池:
- 假设线程A已经拥有了某个对象(注意:不是类)的锁,而其它的线程想要调用这个对象的某个synchronized方法(或者synchronized块),由于这些线程在进入对象的synchronized方法之前必须先获得该对象的锁的拥有权,但是该对象的锁目前正被线程A拥有,所以这些线程就进入了该对象的锁池中。
- 等待池:
- 假设一个线程A调用了某个对象的wait()方法,线程A就会释放该对象的锁后,进入到了该对象的等待池中
02.notify和notifyAll
- 如果线程调用了对象的 wait()方法,那么线程