Daemon线程是一种支持性线程,因为它主要用作程序中台调度以及支持性工作。这意味着,当一个Java虚拟机中不存在非Daemon线程的时候,Java虚拟机将会推出。可以通过调用Thread.setDaemon(true)将线程设为Daemon线程。(Daemon属性需要在线程启动之前设置)在Java虚拟机退出时finally块不一定会执行。
你可以简单的将将守护线程理解为后台运行线程,进程结束,守护线程自动结束,不用手动的去关心和通知其状态。
public class Test1 {
static class DaemonRunner implements Runnable{
@Override
public void run() {
try {
TimeUnit.SECONDS.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}finally {
System.out.println("DaemonThread finally run!!!");
}
}
}
public static void main(String[] args) {
Thread thread = new Thread(new DaemonRunner(),"DaemonRunner");
thread.setDaemon(true);
thread.start();
}
}
运行程序,终端窗口并没有输出。