有一種線程,它是在后臺運行的,它的任務是為其他的線程提供服務,這種線程被稱為“后臺線程”(Daemon Thread),又稱為“守護線程”。
典型的后臺線程是定時器”Timer"線程,他負責將固定的時間間隔發送給其他的線程。
后臺線程經常用于任務結束時的善后處理。另外,后臺線程的優先級要比其他的線程優先級低。
和后臺線程相比,一般的線程稱為“用戶線程”。如果一個應用中只有后臺線程在運行,JVM將退出該應用程序。
可以通過setDaemon(boolean d)來將一個普通的線程設置為后臺線程。用方法isDaemon()可以用于測試特定的線程是否為后臺線程。
package com.liujl.thread;public class DaemonThread extends Thread{ @Override public void run() { while(true){ System.out.PRintln("DaemonThread is running..."); } }; public static void main(String[] args) { DaemonThread dt=new DaemonThread(); // dt.setDaemon(true); dt.start(); } /** * dt.setDaemon(true),設置了dt線程為守護線程,這時調用start(); * 在dt這個線程執行一段時間后將會自動退出,這是因為線程調度程序在監測到只有 * 一個后臺線程在運行的時候,它就終止這個引用程序的運行。 * * 讀者可以把第13行的代碼去掉,再次運行這個引用,此時這個應用程序將永無止境的運行下去。 */}
新聞熱點
疑難解答