如果不调用notify(),等待线程会发生什么?这是虚假唤醒吗?
If a waiting Thread
is not notified通过致电notify()
or notifyAll()
在所述线程正在等待的对象上,则可能会发生以下任一情况:
- the
Thread
一直在对象的等待等候池
- the
Thread
变成runnable如果指定了超时且时间已过
- the
Thread
gets 被打断并成为runnable again
- the
Thread
醒来为no根本没有原因,即两者都不是notified nor 被打断
最后一种情况称为虚假唤醒这就是为什么在醒来时Thread
应始终检查其等待的条件是否为真。如果没有,则Thread
应该打电话然后走wait()
again.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)