08 控制線程 後台執行緒(守護執行緒)

2022-04-20 01:18:47 字數 1117 閱讀 8143

【後台執行緒】

後台執行緒(daemon thread):執行在後台,他的任務是為其它的執行緒提供服務,又稱為"守護執行緒"。jvm的垃圾**執行緒就是典型的後台執行緒。

[ 特徵 ]

如果所有的前台執行緒都死亡,後台執行緒會自動死亡。

呼叫thread物件的setdaemon(true)方法可以將指定的執行緒設定成後台執行緒。

當整個虛擬機器中只剩下後台執行緒時,程式就沒有繼續執行的必要了,所以虛擬機器也就退出了。

thread類提供了乙個isdaemon()方法,用來判斷指定執行緒是否為後台執行緒。

【示例**】

package com.higgin.part02;

class

daemonthread implements runnable

}}public

class

demo02

//main執行緒執行到for迴圈結束,就算此時後台執行緒的執行體for迴圈未結束 ,也得結束執行緒!

}}

【執行結果】

後台執行緒本來希望執行到i=999的,但是前台唯一的main主線程執行結束了,jvm自動退出,後台執行緒也會隨之結束。

【小結】

從上面的**看,主線程預設是前台執行緒,t1執行緒設定為後台執行緒。

【注意1】

並不是所有的執行緒預設都是前台執行緒,

前台執行緒建立的子執行緒預設是前台執行緒

後台執行緒建立的子執行緒預設是後台執行緒

【注意2】

前台執行緒死亡後,jvn會通知後台執行緒死亡,但從它收到指令到做出相應,需要一定的時間,而且要將某個執行緒設定為後台執行緒,必須要在該執行緒啟動之前(比如本案例中main()方法的for迴圈之前),即setdaemon(true)必須在start()方法之前呼叫,否則會引發illegalthreadstateexception異常。

後台執行緒 守護執行緒

有一種執行緒,它是在後台執行的,它的任務是為其他的執行緒提供服務,這種執行緒被稱為 後台執行緒 daemon thread 又稱為 守護執行緒 典型的後台執行緒是定時器 timer 執行緒,他負責將固定的時間間隔傳送給其他的執行緒。後台執行緒經常用於任務結束時的善後處理。另外,後台執行緒的優先順序要...

後台守護執行緒

package duoxian public class threaddemo catch interruptedexception e system.out.println thread.currentthread getname 正在執行 x i 使用者執行緒 thread deamonthre...

執行緒控制(執行緒同步 執行緒安全)

一 執行緒同步 當多個控制線程共享相同的記憶體時,需要確保每個執行緒看到一致的資料。如果當某個執行緒可以去修改變數,而其他執行緒也可以去讀取或者修改這個變數的時候,就需要對這些執行緒進行同步控制,以確保它們在訪問變數的儲存內容時不會訪問到無效的數值。同步 多程序或者多執行緒訪問臨界資源時,必須進行同...