我很好奇是否可以通过运行以下暂停代码来暂停t
Java 中的线程并允许另一个线程稍后恢复它:t
while(true) {
try {
synchronized(t) {
t.wait();
}
} catch(InterruptedException e) {
break;
}
}
t
然后通过调用它来恢复线程.interrupt()
。但是,我读过关于虚假唤醒的文章,所以我想知道我的代码是否会失败,即退出 while 循环,尽管没有其他线程调用.interrupt()
它。虽然这个答案和这个答案表明没有虚假中断,因此我的代码永远不会失败,但 Java 文档似乎没有解决这个问题。我的问题可能归结为是否InterruptedException
在线程不被.interrupt()
. 是否有任何官方资料或文件可以证实这一点?