是的,您需要担心 ,就像您需要担心必须抛出或处理的任何其他已检查异常一样。InterruptedException
大多数情况下,一个信号是停止请求,很可能是因为运行代码的线程被中断了。InterruptedException
在连接池等待获取连接的特定情况下,我会说这是一个取消问题,您需要中止获取,清理和还原中断的标志(见下文)。
举个例子,如果你在里面使用某种/运行,那么你需要正确处理中断的异常:Runnable
Callable
Executor
executor.execute(new Runnable() {
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch ( InterruptedException e) {
continue; //blah
}
pingRemoteServer();
}
}
});
这意味着您的任务永远不会遵守执行程序使用的中断机制,并且不允许适当的取消/关闭。
相反,正确的成语是恢复中断状态,然后停止执行:
executor.execute(new Runnable() {
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch ( InterruptedException e) {
Thread.currentThread().interrupt(); // restore interrupted status
break;
}
pingRemoteServer();
}
}
});
有用的资源: