守護線程
守護進程(Daemon)是運行在後臺的一種特殊進程。它獨立於控制終端並且週期性地執行某種任務或等待處理某些發生的事件。
用戶線程
用戶線程和守護線程兩者幾乎沒有區別,唯一的不同之處就在於虛擬機的離開:如果用戶線程已經全部退出運行了,只剩下守護線程存在了,虛擬機也就退出了。 因爲沒有了被守護者,守護線程也就沒有工作可做了,也就沒有繼續運行程序的必要了。
使用Thread方式
import java.util.Scanner;
public class DaemonThread extends Thread {
@Override
public void run() {
System.out.println("守護線程啓動。。。");
while (true) {
System.out.println("守護線程啓動中。。。。。。");
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
DaemonThread daemonThread = new DaemonThread();
daemonThread.setDaemon(true);
daemonThread.start();
Scanner scanner = new Scanner(System.in);
String input = scanner.next();
System.out.println("輸入了 " + input + "。。。");
System.out.println("守護線程結束。。。");
}
}
樣例輸出:
守護線程啓動。。。
守護線程啓動中。。。。。。
守護線程啓動中。。。。。。
守護線程啓動中。。。。。。
守護線程啓動中。。。。。。
守護線程啓動中。。。。。。
守護線程啓動中。。。。。。
守護線程啓動中。。。。。。
守護線程啓動中。。。。。。
h
輸入了 h。。。
守護線程結束。。。
大家體會一下吧
守護線程是每隔一秒輸出一條,用戶線程監聽用戶輸入,輸入後,用戶線程結束了,守護線程也結束了。