后台線程(Daemon)的作用
導言
如果想讓某個線程隨着主線程的結束而結束,該如何做?例如線程a如何隨着主線程的結束而結束。解決這個問題,我們可以將線程a設置為后台線程,這樣線程就會隨着主線段的結束而結束。
下面我們將從2點來介紹后台線程。
第一點設置后台線程。
第二點判斷線程是否為后台線程。

設置后台線程
首先來看第一點,我們可以使用thread的類里面的setdaemon方法,它的作用就是設置該線程是否為后台線程,

它只有一個參數on,當他為true 時設置線程為后台線程,當他為false時設置縣城不為后台線程。當線程死亡時,再這樣setdaemon方法就會引發非法線程狀態異常。
因為死亡的線程已經執行結束,它無法再被設置為后台線程。

演示
下面來演示該方法,首先制定一個打印任務,任務的內容是無限打印正在運行這句話,然后來執行該任務。

首先將任務創建出來,然后創建線程接着將任務傳遞給線程,再接着將該線程設置為后台線程。當主線程運行結束后,該線程結束。接着啟動線程

為了讓后台線程效果更明顯,使主線程消滅一秒鍾后結束,sleep方法有異常,try catch捕獲。

從運行結果來看,當主線程運行結束后,后台線程也運行結束,至此第一節解釋完畢。

判斷線程是否為后台線程
再來看第二點,判斷線程是否為后台線程,isDaemon方法的作用就是判斷線程是否為后台線程,他返回一個布爾類型的結果,當該線程為后台線程返回true,否則返回false,

下面來演示該方法,修改之前的打印任務,刪除打印語句,

再來修改之前的main方法,刪除sleep方法,然后在setDaemon方法之前輸出該線程是否為后台線程,接着在setDaemon方法之后也輸出該線程是否為后台線程。

從運行結果來看,thread的線程設置前不是后台線程,設置后置后台線程。

總結
最后來總結一下本節的內容。本節介紹了thread類里面的兩個方法,分別是setdaemon和isdaemon,它們都是非靜態方法,setdaemon方法的作用是設置線程是否為后台線程,isdaemon方法的作用是判斷該線程是否為后台線程,在實際開發中偶爾也會用到他們。

附錄:
筆記完整文本:
如果想讓某個線程隨着主線程的結束而結束,該如何做?例如線程a如何隨着主線程的結束而結束解決這個問題,我們可以將線程a設置為后台線程,這樣線程就會隨着主線段的結束而結束。下面我們將從2點來介紹,后產,縣城。第一點設置合同縣城。第二點判斷線程是否為后台線程。首先來看第一點,我們可以使用three的類里面的測的dim方法,它的作用就是設置該線程是否為后台線程,它只有一個參數on,當他為處時設置線程為后台線的,單單為4th是設置縣城不為后台縣城當縣城死亡時,再這樣set定方法就會引發非法現成狀態異常。 因為死亡的縣城已經執行結束,它無法再被設置為后台線程。下面來演示該方法,首先制定一個打印任務,任務的內容是無線打印正在運行這句話,然后來執行該任務。首先將任務創建出來,然后創建線程接着將任務傳遞給線程,再接着將該線程設置為后台線程。當主線程運行結束后,該線程結束接着啟動線程,為了讓后台線程效果更明顯,使主線程消滅一秒鍾后結束,磁力普方法有異常,拋出使用拆開其暫停補貨。從運行結果來看,當主線程運行結束后,后台線程也運行結束,至此第一節解釋完畢。再來看第二點,判斷線程是否為后台線程,你的dim方法的作用就是判斷線程是否為后台線程,他返回一個布爾類型的結果,當該線程為后台線程返回處,否則返回4th,下面來演示該方法修改之前的打印任務,刪除打印語句,再來修改之前的main方法,刪除斯利普方法,然后在set閉目方法之前輸出該線程是否為后台線程,接着在set蒂姆方法之后也輸出該線程是否為后台線程。 從運行結果來看,three的線程設置前不是后台線程設置后置后台線程。最后來總結一下本節的內容。本節介紹了瑞德類里面的兩個方法,分別是賽的蒂姆和義子蒂姆,它們都是非靜態方法在的定位方法的作用是設置建成是否為后台線程,一字定目方法的作用是判斷該縣城是否為后台,縣城在實際開發中偶爾也會用到他們。
