当线程t
调用对象wait()
上的u
方法时,它会进入WAITING状态,直到另一个线程在同一个对象{{1}上调用notify()
} OR 另一个线程在等待线程u
上调用interrupt()
方法。考虑到等待线程不消耗CPU周期,等待线程如何检查t
中的中断状态并抛出wait()
?
也就是说,我想象InterruptedException
中的以下代码:
wait()
答案 0 :(得分:4)
必须恢复状态为WAITING的线程再次变为RUNNABLE。
此恢复正在较低级别完成,并由通知或中断调用。
等待线程不执行任何代码。而是设置中断标志(在较低级别),线程恢复 - 状态RUNNABLE - 并且一旦它再次运行,则检查中断状态。