• 由于条件不满足,小南不能继续进行计算
    • 但小南如果一直占用着锁,其它人就得一直阻塞,效率太低

      image.png

    • 于是老王单开一间休息室(调用wait方法),让小南到休息室(WaitSet)等着去了,但这时锁释放开,其他人可以由老王随机安排进屋

    • 直到小M将烟送来,大叫一声【你的烟到了】(调用notify方法)

    image.png

    • 小南离开休息室,重新进入竞争锁的队列;

    image.png

    所以wait-notify的应用场景是:一个线程占用了锁,但是在占用锁的过程中因为有条件没满足需要等待,那么使用wait进入【WAITING】状态。
    wait-notify常用来实现线程间通信,如同步与异步。