Rol*_*all 3 java concurrency executor
直接来自这个java教程:
为了支持立即关闭,任务应该正确处理中断
有人能说清楚这一点吗?任务和中断与关机方法之间的关系是什么?这只是意味着是否有任务等待它必须抛出的东西InterruptedException?
提前致谢.
Evg*_*eev 10
想象一下,您使用ExecutorService运行此任务
class Task implements Runnable() {
public void run() {
while(true) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在要使用shutdownNow()关闭ExecutorService.ExecutorService将在运行任务的线程上调用interrupt(),但由于任务不响应中断,因此它将继续运行,ExecutorService将永远不会关闭.
以下更改将使此任务可中断
while(!Thread.interrupted()) {
}
Run Code Online (Sandbox Code Playgroud)
并将允许ExecutorService关闭