可以杀死守护线程吗? [复制]

Posted

技术标签:

【中文标题】可以杀死守护线程吗? [复制]【英文标题】:Can Daemon Threads be killed? [duplicate] 【发布时间】:2013-11-04 10:35:51 【问题描述】:

我对@9​​87654321@有一个不错的想法

但我想知道我们是否可以终止守护线程,或者何时在 Java 中终止守护线程?

【问题讨论】:

只有你有+10正义之剑。 【参考方案1】:

关于守护线程的想法是,当最后一个非守护线程结束时,应用程序也结束。守护线程无法保持 JVM 运行

【讨论】:

答案如何? 这是一个部分答案,因为它说当JVM用完非守护线程时守护线程结束。【参考方案2】:

如果这两个条件之一为真,则结束一个守护线程:

线程从run()方法返回 虚拟机已终止

要主动结束(守护程序)线程,最常用的方法是向线程发出终止请求的信号,线程应定期检查此请求,并在发出此类请求后自行结束。

【讨论】:

【参考方案3】:

守护线程是在后台运行的线程。这些线程由 JVM 默认启动。我们也可以通过程序启动一个守护线程。

当一个主程序启动时,唯一启动的非守护线程是主线程,其余(GC ets)是守护线程。

当没有非守护线程运行时,这些线程会自动终止,因为之后 JVM 会自行终止。

【讨论】:

以上是关于可以杀死守护线程吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

C++笔记--Linux编程(13)-守护进程-线程

Python 守护程序线程未在 Windows 上退出

android应用多线程守护让你非常难杀死它

守护线程与非守护线程的区别

守护线程(后台线程)与非守护线程(用户线程,前台线程)

守护进程与非守护进程