2011-02-02 36 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

守護線程不會阻止應用程序在他們仍在工作時關閉。它們更適合在應用程序運行時需要完成的任務,但是否則可以安全地殺死它們。