守护线程
守护线程:虚拟机不用等待守护线程执行完毕。
守护线程可以用来:后台记录操作数据、监控内存使用等。
总结点:jvm不会管守护线程有没有执行完,只要用户线程执行完了jvm就停止运行
setDaemon方法默认为false,设置为true就是守护线程了,false就为用户线程,默认为false。
实例:验证jvm会不会管守护线程有没有执行完?所以我给守护线程执行了一个死循环,看一下jvm会不会等待守护线程执行完成。结果是不会的。
public class Guard {
public static void main(String[] args) {
new Thread(new Youk()).start();
God g=new God();
Thread t=new Thread(g);
//设置为守护线程
t.setDaemon(true);
t.start();
}
}
class Youk implements Runnable{
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println("你很幸福");
}
}
}
class God implements Runnable{
@Override
public void run() {
for (; true; ) {
System.out.println("你很痛苦");
}
}
}
结果图: