回答
守護進程線程和非守護進程線程之間的主要區別在於,當所有非守護進程線程都終止時,程序將終止。所以如果你有一個活動的守護進程線程並結束你的第一個線程,程序就會終止。所以,只要程序運行,你就會想要使用一個守護線程來保存你想要做的事情。
一個守護線程是一個線程,這並不妨礙JVM退出時程序完成,但線程仍在運行。 守護線程是服務供應商在同一個進程中守護線程
E.g垃圾收集運行的其他線程。
通過調用Thread對象上的setDaemon(true)
,可以明確指定用戶線程創建的線程爲守護進程線程。
供您參考,
注意,
setDaemon()
方法必須 線程的start()
方法之前被稱爲是一個invoked.Once線程 開始執行(即其start()
方法被稱爲)它的守護進程 狀態不能改變。若要確定 線程是否爲守護進程線程,請使用 訪問器方法isDaemon()
。
被視爲守護進程的線程會發生什麼情況?
標誌isDaemon()
將被設置爲true。
什麼不會發生是;此線程不會停止應用程序退出。
這會對線程造成什麼影響?
沒有,除非你看isDaemon()方法。
線程上的「can and can'ts」是什麼?
你可以在守護線程中做任何事情,你可以在非守護線程中做任何事情。
你不能保證線程將完成。在Java的守護程序和非守護線程之間
差異:
1)JVM不會等待任何守護線程到現有之前完成。
2)當JVM終止時,守護線程與用戶線程的處理方式不同,最後阻塞不被調用,堆棧不會被解除並且JVM剛剛退出。
守護進程線程是一個不會阻止程序結束的線程。
舉個例子: Java應用程序開始與只有一個線程,則「主」運行於main
方法線程。這是一個常規(非守護進程)線程。現在再想象一下,程序啓動另一個線程,它可以在循環中進行一些操作。如果新線程是一個普通的(非守護進程)線程,它會阻止程序在「main」結束時完成,並且會一直持續下去!
class HelloThread extends Thread
{
public void run()
{
for (; ;)
{
System.out.println("hello");
sleep(1000);
}
}
}
public class RegularThreader
{
public static void main(String[] args)
{
Thread hello = new HelloThread();
hello.start();
System.out.println("Sorry, I must be leaving");
}
}
現在,這並不總是需要的。有時你想在程序結束時結束這個「背景」處理。爲此,您可以將線程標記爲守護線程。守護線程不阻止程序結束,但停止在主線程,停止
public class DaemonThreader
{
public static void main(String[] args)
{
Thread hello = new HelloThread();
hello.setDaemon(true);
hello.start();
System.out.println("Sorry, I must be leaving");
}
}
嘗試運行上面的兩個不同的類,看看 輸出是如何不同。 守護進程線程的經典示例是在許多Java虛擬機中找到的垃圾回收線程。它需要在任何其他線程運行時連續運行,但不應阻止程序退出。程序退出時,不再需要垃圾收集器。
- 1. 守護線程Java
- 2. java守護進程線程
- 3. 守護線程
- 4. 在java中的守護進程線程
- 5. Java中的守護進程和非守護線程優先級
- 6. 守護線程說明
- 7. 守護進程線程是否也是守護進程線程啓動的線程?
- 8. 關於守護線程提供非守護線程一些服務
- 9. 守護程序線程不止一個?
- 10. 瞭解Python守護進程線程
- 11. Python線程和守護進程
- 12. 創建守護進程線程
- 13. HTTP ::守護進程和線程
- 14. 使用轉換用戶線程 - >守護程序線程
- 15. Python多線程:如何讓守護進程線程運行
- 16. Java線程監視。如何找出非守護進程活動線程?
- 17. java中的工作者和守護進程線程
- 18. Java在applet重新加載中殺死守護進程線程
- 19. 守護線程垃圾收集器的父線程是什麼?
- 20. 的Android守護線程測試
- 21. 守護線程是什麼意思?
- 22. JNI清理和守護線程
- 23. 通過Mule中的守護進程線程維護多個HttpRequests
- 24. 如何守護Java程序?
- 25. 爲什麼VisualVM在Linux上不顯示守護程序線程?
- 26. 線程中的C或C++ HTTP守護進程?
- 27. 守護線程不退出,儘管主程序完成
- 28. 守護進程線程什麼也不做
- 29. 守護線程在關閉應用程序後仍然活着
- 30. 守護進程線程在Python 3.5.1中有用嗎?