This question already has answers here:
Java long running task Thread interrupt vs cancel flag

(5个答案)


7年前关闭。




我完全理解它的作用(至少我希望如此)。它并没有真正中断线程。它使Thread.isInterrupted()为true,并且该代码应检查哪种方法并停止线程本身。

我的问题是,为什么我们甚至需要这种方法?通过声明一个 boolean 标志说明该线程是否应停止,似乎可以完全替换。没有任何Java教科书使用此boolean标志作为应如何使用volatile关键字的最佳示例?

我特别困惑,因为不推荐使用Thread.resume(),因此似乎无法“不间断”线程。这使得interrupt()甚至不如我自己编写的 boolean 标志有用。

除了可能更容易编写之外,Thread.interrupt()是否与我的 boolean 标志有什么不同?

最佳答案

从相关的post:



javadocs



因此,它提供了更多功能,而不仅仅是设置 boolean 标志。

09-29 22:13