守护线程,会在所有用户线程退出之后,自动退出
public class Daemon {
public static class DT implements Runnable {
@Override
public void run() {
/**
* @author privatechen
* 创建时间:2018年4月23日 上午9:43:54
* 类说明
*/
while (true) {
try {
Thread.sleep(1000);
System.out.println("aaaaa");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
DT dt = new DT();
Thread t = new Thread(dt);
//当一个线程里,只有守护线程时,java虚拟机会自动退出
t.setDaemon(true);
t.start();
System.out.println("bbbbb");
}
}
如果没有设置t.setDaemon(true);
那么该线程不是守卫线程,那么该线程会一直执行:
如果设置了t.setDaemon(true);
那么该线程为守卫线程,当主线程运行完之后,守卫线程会退出
守卫线程中不要进行逻辑计算等实质性操作,因为不保险。。。