我阅读了 Bloch 在 Effective Java 中给出的示例代码,如下所示:

现在,我想说清楚 Thread.currentThread().interrupt() 被调用的目的。我阅读了那本书给出的解释,但我仍然感到困惑:

任何人都可以进一步解释它吗?

最佳答案

当您捕获 InterruptedException 时,线程的中断标志将被清除。通过调用 Thread.currentThread().interrupt() ,您再次设置了中断标志,以便堆栈更高的客户端知道线程已被中断并可以做出相应的 react 。在示例中,Executor 就是这样一种客户端。
您可能需要阅读 this article 以获得更详尽的解释。

10-06 16:19