守護執行緒:顧名思義,就是守護執行緒的執行緒;在JAVA執行緒分為 用戶執行緒(User Thread)和守護執行緒(Daemon Thread) ;守護執行緒就是用來守護用戶執行緒的,所以JVM中如果沒有需要守護的執行緒了,守護執行緒也就沒有存在的意義;守護執行緒最典型的應用就是 GC (垃圾回收器),守護執行緒并非只有虛擬機內部提供,用戶在撰寫程式時也可以自己設定守護執行緒
一、設定守護執行緒


由此可見JAVA中創建執行緒默認是User Thread ;
setDaemon()方法必須在呼叫執行緒的start()方法之前呼叫
二、守護執行緒的特點
1、守護執行緒,在所有的的非守護執行緒(即用戶執行緒)結束之后,程式就會結束,JVM退出,同時也就會殺死所有的守護執行緒,所以也就意味著,守護執行緒不適合去訪問固有資源,比如檔案,資料庫,因為隨時可能中斷;守護執行緒會隨著主程式的結束而結束,但是用戶執行緒不會,或者說只要有一個用戶執行緒未退出,行程就不會終止,

2、默認情況下,程式員創建的執行緒是用戶執行緒;用setDaemon(true)可以設定執行緒為后臺執行緒;而用isDaemon( )可以判斷一個執行緒是前臺執行緒還是后臺執行緒;main 執行緒是一個用戶執行緒;jvm的垃圾回收器其實就是一個守護執行緒;

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/209842.html
標籤:Java
