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