如何安全中断一个正在运行的线程?

54 天前
 dvsusan123
线程是操作系统进行运算调度的最小单位,所以线程是系统级别的概念。

在 Java 中,可以使用 Thread.interrupt()方法安全中断一个正在运行的线程。

其中 Thread.interrupt()方法用于设置线程的中断状态为"中断"。它并不会直接终止线程的执行,而是给线程一个中断信号。

在执行线程的代码中,可以通过检查 Thread.interrupted()或 Thread.currentThread().isInterrupted()方法来判断线程是否被中断。

如果线程被中断,应根据具体情况决定如何处理中断。可以选择抛出 InterruptedException 异常、恢复线程到一个安全的状态,或者终止线程的执行。

如果线程处于等待状态(如 Thread.sleep()、Object.wait()、Thread.join()等),那么线程会立即从等待状态返回,并且 InterruptedException 异常会被抛出。

使用 Thread.interrupt()方法可以安全地中断一个正在运行的线程,并通过 Thread.currentThread().isInterrupted()方法检查线程的中断状态。在处理中断时,可以选择抛出 InterruptedException 异常、恢复线程到安全状态或者终止线程的执行。
2887 次点击
所在节点    Java
22 条回复
dvsusan123
53 天前
@tongqe 你敢不敢写一篇文章出来看看?
8355
53 天前
你最后想说啥啊。。优雅停机?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1034322

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX