【Java面試】什麼是守護執行緒,它有什麼特點

跟著Mic學架構發表於2022-07-09

Hi,大家好,我是Mic

一個工作了3年的粉絲,在面試的時候遇到一個執行緒相關問題。

想讓我幫他解答一下。

問題是,“什麼是守護執行緒,它有什麼特點”

下面看看高手的回答。

高手:

好的。

守護執行緒,它是一種專門為使用者執行緒提供服務的執行緒,它的生命週期依賴於使用者執行緒。

只有JVM中仍然還存在使用者執行緒正在執行的情況下,守護執行緒才會有存在的意義。

否則,一旦JVM程式結束,那守護執行緒也會隨之結束。

也就是說,守護執行緒不會阻止JVM的退出。但是使用者執行緒會!

守護執行緒和使用者執行緒的建立方式是完全相同的,我們只需要呼叫使用者執行緒裡面的setDaemon方法並且設定成true,

就表示這個執行緒是守護執行緒。

因為守護執行緒擁有自己結束自己生命的特性,所以它適合用在一些後臺的通用服務場景裡面。

比如JVM裡面的垃圾回收執行緒,就是典型的使用場景。

這個場景的特殊之處在於,當JVM程式技術的時候,記憶體回收執行緒存在的意義也就不存在了。

所以不能因為正在進行垃圾回收導致JVM程式無法技術的問題。

但是守護執行緒不能用線上程池或者一些IO任務的場景裡面,因為一旦JVM退出之後,守護執行緒也會直接退出。

就會可能導致任務沒有執行完或者資源沒有正確釋放的問題。

以上就是我對這個問題的理解。

總結

這個問題,大部分工作年限比較長的同學也不一定能回答上來。

首先執行緒這個領域在業務開發中本身使用就比較少

而守護執行緒接觸就更少了。

我始終認為,只有積累足夠多的技術,才能更從容的應對未來長遠的職業發展。

喜歡我作品的小夥伴,記得點贊收藏加關注。

file

版權宣告:本部落格所有文章除特別宣告外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Mic帶你學架構
如果本篇文章對您有幫助,還請幫忙點個關注和贊,您的堅持是我不斷創作的動力。歡迎關注同名微信公眾號獲取更多技術乾貨!

相關文章