通常是 sleep 之类的方法 throws InterruptedException
。
如果一个线程很长时间没有调用抛出的方法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;
}
}
在这个简单的示例中,代码只是测试中断并在收到中断时退出线程。在更复杂的应用程序中,抛出 InterruptedException 可能更有意义:
if (Thread.interrupted()) {
throw new InterruptedException();
}
现在回答你的问题:
- 从上面的例子可以看出,如果InterruptedException没有被方法处理,可以自己处理
- 由于您可以为这些方法处理此问题,因此您可以执行其他任务而不是退出。但是在中断发生后退出线程绝对是最常见的。
来源:javadoc