基礎篇:Java守護線程

一、線程分類

  • User Thread:用戶線程,一般的線程默認爲用戶線程。

  • Daemon Thread:守護線程,也稱“服務線程”,在沒有用戶線程可服務時會自動結束。守護線程的優先級比較低,用於爲系統中的其它對象和線程提供服務。通過Thread.setDaemon(true)設置爲守護線程。

二、守護線程的作用

  • 任何一個守護線程都是整個JVM中所有非守護線程的守護者。只要當前JVM實例中尚存在任何一個非守護線程沒有結束,守護線程就全部工作;只有當最後一個非守護線程結束時,守護線程隨着JVM一同結束工作。虛擬機也就退出了。

三、應用

  • 垃圾回收線程就是一個經典的守護線程,當我們的程序中不再有任何運行的線程,程序就不會再產生垃圾,垃圾回收器也就無事可做,所以當垃圾回收線程是JVM上僅剩的線程時,垃圾回收線程會自動離開。它始終在低級別的狀態中運行,用於實時監控和管理系統中的可回收資源。

四、備註

  • 守護線程中創建的線程默認爲守護線程

  • 如果將守護線程中創建的線程顯示設置爲非守護線程(用戶線程),那這個線程是守護線程還是用戶線程

    • 答案:顯示的設置是生效的,該線程爲用戶線程


歡迎關注“豬哥Java”



本文分享自微信公衆號 - 豬哥Java(pig-python)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章