wait/notify详解

2020-02-12  本文已影响0人  我还是老油条

等待/通知机制,是指一个线程A调用了对象O的wait()方法进入等待状态,而另一个线程B 调用了对象O的notify()或者notifyAll()方法,线程A收到通知后从对象O的wait()方法返回,进而 执行后续操作。上述两个线程通过对象O来完成交互,而对象上的wait()和notify/notifyAll()的

关系就如同开关信号一样,用来完成等待方和通知方之间的交互工

waitThread首先获取了对象的锁,然后调用对象的wait()方法,从而放弃了锁 并进入了对象的等待队列WaitQueue中,进入等待状态。由于waitThread释放了对象的锁,

notifyThread随后获取了对象的锁,并调用对象的notify()方法,将waitThread从WaitQueue移到 SynchronizedQueue中,此时waitThread的状态变为阻塞状态。notifyThread释放了锁之后, waitThread再次获取到锁并从wait()方法返回继续执行

如图所示:

上一篇 下一篇

猜你喜欢

热点阅读