当线程 t
调用对象 u
上的 wait()
方法时,它会进入 WAITING 状态,直到另一个线程调用 notify()
在同一对象 u
OR 另一个线程在等待线程 上调用
。考虑到等待线程不消耗 CPU 周期,等待线程如何在 interrupt()
方法>twait()
中检查 中断状态 并抛出 中断异常
?
也就是说,我在 wait()
中想象以下代码:
if (Thread.interrupted()) // Clears interrupted status!
throw new InterruptedException();
最佳答案
必须恢复处于 WAITING 状态的线程才能再次变为 RUNNABLE。
此恢复在较低级别完成,并由通知或中断两者调用。
等待线程不执行任何代码。相反,中断标志被设置(在较低级别),线程被恢复 - 状态 RUNNABLE - 一旦它再次运行,中断状态被检查。
关于java - 从 wait() 中检查中断状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39304037/