直接来自这个 java 教程:



有谁能说清楚点吗?任务和中断和关闭方法有什么关系? 是否仅表示 意味着如果有任务在等待它必须抛出 InterruptedException 的东西?

提前致谢。

最佳答案

想象一下你用 ExecutorService 运行了这个任务

class Task implements Runnable() {
   public void run() {
       while(true) {
       }
   }
}

现在你想用 shutdownNow() 关闭 ExecutorService。 ExecutorService 将在运行任务的线程上调用 interrupt(),但由于任务不响应中断,它将继续运行并且 ExecutorService 永远不会关闭。

以下更改将使此任务可中断
       while(!Thread.interrupted()) {
       }

并允许 ExecutorService 关闭

关于java - 中断、关闭方法和 ExecutorService,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17830075/

10-11 03:35