1. 程式人生 > >004 後臺線程

004 後臺線程

打印 應用 結束 span spa 沒有 ted [1] out

一 . 後臺線程

一個線程是在線程創建的時候被指定為在後臺執行的一種特殊線程.

註意 :

  [1] 後臺線程需要在啟動之前進行指定.

  [2]daemnon的優先級別很低,也就是說它運行的機會比較少.

  [3]後臺線程的生命周期依賴於其父線程的生命周期,也就是說,如果沒有非後臺線程,

    那麽後臺線程自動結束.

下面看一個例子:

  

public class DaemonThread {

    public static void main(String[] args) {
        //創建一個線程,這個線程會不斷的打印自己的名字
        Thread thread = new
Thread() { @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 後臺線程