关于wait()方法和notify()方法的一个典型例题
Peng's Blog 只记录和技术相关的东西

关于wait()方法和notify()方法的一个典型例题


enter description here
会输出:
Thread 2 sent notify.
Thread 1 wake up

原因:
这里主要涉及到的问题是
wait()方法会释放掉锁,然后需要notify()或者notifyAll()来唤醒。但是有个地方必须要注意。 notify()调用之后并不是马上就释放掉对象锁的。
t1 启动后执行 obj.wait() 时,进入阻塞状态,让出时间片并释放锁,等待其他线程的唤醒。然后 t2 获取到 obj,并唤醒 t1,待 t2 执行完毕,释放锁后,t1 再继续执行。

综上,答案是

Thread 2 sent notify.
Thread 1 wake up


Comments

评论功能暂停使用,如需跟作者讨论请联系底部的GitHub