什么是守護線程?


【什么是守護線程?】

Java提供了兩種線程:守護線程和用戶線程。

守護線程又被稱為“服務進程”“精靈線程”“后台線程”,是指在程序運行是在后台提供一種通用的線程,這種線程並不屬於程序不可或缺的部分。 通俗點講,任何一個守護線程都是整個JVM中所有非守護線程的“保姆”。

用戶線程和守護線程幾乎一樣,唯一的不同之處就在於如果用戶線程已經全部退出運行,只剩下守護線程存在了,JVM也就退出了。  因為當所有非守護線程結束時,沒有了被守護者,守護線程也就沒有工作可做了,也就沒有繼續運行程序的必要了,程序也就終止了,同時會“殺死”所有守護線程。 也就是說,只要有任何非守護線程還在運行,程序就不會終止。

Java語言中,守護線程一般具有較低的優先級,它並非只由JVM內部提供,用戶在編寫程序時也可以自己設置守護線程,例如將一個用戶線程設置為守護線程的方法就是在調用start()方法啟動線程之前調用對象的setDaemon(true)方法,若將以上括號里的參數設置為false,則表示的是用戶進程模式。   

需要注意的是,當在一個守護線程中產生了其它線程,那么這些新產生的線程默認還是守護線程,用戶線程也是如此。

 

垃圾回收器就是一個守護線程。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM