004 後臺線程
阿新 • • 發佈:2018-04-28
打印 應用 結束 span spa 沒有 ted [1] out
一 . 後臺線程
一個線程是在線程創建的時候被指定為在後臺執行的一種特殊線程.
註意 :
[1] 後臺線程需要在啟動之前進行指定.
[2]daemnon的優先級別很低,也就是說它運行的機會比較少.
[3]後臺線程的生命周期依賴於其父線程的生命周期,也就是說,如果沒有非後臺線程,
那麽後臺線程自動結束.
下面看一個例子:
public class DaemonThread { public static void main(String[] args) { //創建一個線程,這個線程會不斷的打印自己的名字 Thread thread = newThread() { @Override public void run() { while (true) { System.out.println(Thread.currentThread().getName()); try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } } } };//thread.setDaemon(true); thread.start(); } }
在上面我們創建了一個線程,這個線程是一個非後臺線程,因此它的生命周期與其它線程無關.
因此,現在我們運行的時候就會不斷的打印該線程的名字.
當我們打開註釋:
我們發現現在線程不會不斷打印自己的名字了,而是在主線程終結的時候主動結束自己的生命周期了.
總結 :
後臺線程我們可以認為是一個附屬線程,它的生命周期依賴於其父線程的生命周期.
比如現在有一個應用,需要一個子線程不斷發送消息到對方服務器確認對方是否下線.
那麽我們就能使用一個後臺線程完成這個任務.
我們使用一個後臺線程完成這個任務,如果主線程終結,那麽我們就不需要再發心跳包了 .
004 後臺線程