繁体   English   中英

如果没有调用notify(),等待线程会发生什么?

[英]What happens to waiting thread if notify() is not called?

如果没有调用notify(),等待线程会发生什么? 这是虚假的唤醒吗?

如果等待 Thread没有通过调用通知 notify()notifyAll()上述线程正在等待的对象,那么下面的任何一个可能会发生:

  • Thread在对象的等待池中等待
  • 如果指定了超时并且时间过去,则Thread变为可运行
  • Thread中断并再次变为可运行
  • Thread 完全没有理由醒来,即既没有通知也没有中断

最后一种情况被称为虚假唤醒,并且是唤醒Thread时应始终检查其等待条件是否为真的原因之一。 如果没有, Thread应该调用并再次进入wait()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM