有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    如果通过调用所述线程正在等待的对象上的notify()notifyAll()来通知等待的线程Thread,则可能发生以下任一情况:

    • Thread一直在对象的等待池中等待
    • 如果指定了超时并且时间已过,Thread将变为可运行
    • Thread中断,并再次成为可运行
    • Thread完全是因为没有原因而醒来的,即既没有通知也没有中断

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