使用转换用户线程 - >守护线程

时间:2011-02-02 18:32:28

标签: java multithreading daemon

我读过,守护程序线程由JVM使用和控制。 JVM创建它们并监视它们的终止。用户线程由用户控制。 还有人说,我们可以通过调用setDaemon()方法将用户线程转换为守护进程线程。

但是, what is the use of such conversion ?一旦JVM成为dameon线程,JVM是否会控制用户线程?

如果我错过了什么,请告诉我。

感谢。

2 个答案:

答案 0 :(得分:7)

我相信用户和守护程序线程总是在JVM的控制之下。 (如果情况并非如此,谁将负责?)

这是区别(来自http://www.xyzws.com/javafaq/what-is-difference-between-user-and-daemon-thread-in-java/196):

  

这两种类型之间的区别   线程很简单:如果   Java运行时确定唯一的   在应用程序中运行的线程   守护程序线程(即,没有   存在的用户线程)Java   运行时迅速关闭   应用,有效地阻止所有   守护进程线程已经死亡。   为了申请   继续运行,它必须始终有   至少一个实时用户线程。在所有   Java运行时处理的其他方面   守护程序线程和用户线程   完全相同的方式。

答案 1 :(得分:7)

守护程序线程不会阻止应用程序在仍在工作时关闭。它们更适用于在应用程序处于活动状态时需要完成的任务,但是否则可以安全地杀死它们。