我阅读了 Bloch 在 Effective Java 中给出的示例代码,如下所示:
现在,我想说清楚 Thread.currentThread().interrupt()
被调用的目的。我阅读了那本书给出的解释,但我仍然感到困惑:
任何人都可以进一步解释它吗?
最佳答案
当您捕获 InterruptedException
时,线程的中断标志将被清除。通过调用 Thread.currentThread().interrupt()
,您再次设置了中断标志,以便堆栈更高的客户端知道线程已被中断并可以做出相应的 react 。在示例中,Executor
就是这样一种客户端。
您可能需要阅读 this article 以获得更详尽的解释。