我想澄清一下线程中断。
如果一个线程很长时间没有调用抛出一个InterruptedException的方法怎么办?然后它必须定期调用 Thread.interrupted,如果收到中断则返回 true。例如:
for (int i = 0; i < inputs.length; i++) {
heavyCrunch(inputs[i]);
if (Thread.interrupted()) {
// We've been interrupted: no more crunching.
return;
}
}
当我调用Thread.interrupt()
它抛出中断异常的方法时,为什么我需要这样做,if (Thread.interrupted())
我会简单地这样做
try {
for (int i = 0; i < inputs.length; i++) {
heavyCrunch(inputs[i]);
if (Thread.interrupted()) {
// We've been interrupted: no more crunching.
return;
}
}
} catch (InterruptedException ex) {
...
}