2011-02-02 37 views
4

我读,守护线程由JVM使用和控制。 JVM创建它们,并且在它们终止之后进行查看。用户线程由用户控制。 也有人说,我们可以通过调用setDaemon()方法将用户线程转换为守护进程线程。使用转换用户线程 - >守护程序线程

但是,what is the use of such conversion? JVM在成为dameon线程后是否接受用户线程的控制?

让我知道如果我错过了什么。

谢谢。

+0

sgokales,在将用户线程转换为守护进程线程(在内存等方面)有什么意义吗? – sskumar86 2015-09-03 06:02:31

回答

7

我相信用户和守护进程线程总是在JVM的控制之下。 (如果不是的话,会是谁说了算?)

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

这两种类型之间的区别线程 很简单:如果 的Java运行时确定的唯一 线程应用程序中运行的是 守护线程(即有存在没有 用户线程)在Java运行时 及时关停 应用,有效地停止所有 守护线程死在他们的TR的ACK。 为使 的应用程序继续运行,它必须始终有 至少有一个活用户线程。在所有的 其他方面,Java运行时间以 完全相同的方式对待 守护进程线程和用户线程。

+1

如果是这样,那么为什么它被称为“用户”线程? – 2011-02-02 18:41:13

7

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