5.线程间通信,等待唤醒机制
2019-02-26 本文已影响0人
yanghx
线程间通信
image.png线程间通信:
多个线程在处理同一资源,但是任务不同
多个线程虽然任务不同。但是他们要使用同一个锁。这样才能让两个线程同步。 称为通信
等待唤醒机制
-
wati()
:让线程处于冻结状态。被wati的线程会被放入线程池中 -
notify()
:唤醒线程池中的一个线程(任意) -
notifyAll()
:唤醒线程池中的所有线程
这些方法都必须订单在同步中。
因为这些方法都是用于操作线程状态的方法。
必须要明确到底操作的是那个锁上的线程。
image.png
为什么操作线程的方法wait(),notify(), notifyAll()
定义在了object类中
- 因为这些方法是监视器的方法。 监视器其实就是锁。 锁可以是任意对象。任意对象调用的方式一定定义在object类中。
理论上说。 一个锁对应一个线程池
- 每一个wait操作都是一个锁将某个线程冻结,并将线程放到这个锁的线程池中。