守护线程(人生不过三万天)

167 阅读1分钟

用户线程:Java虚拟机在它所有非守护线程已经离开后自动离开。

守护线程:守护线程则是用来服务用户线程的,如果没有其他用户线程在运行,那么就没有可服务对象,也就没有理由继续下去。

守护线程与普通线程的唯一区别是:当JVM中所有的线程都是守护线程的时候,JVM就可以退出了;如果还有一个或以上的非守护线程则不会退出。也就是,只要存在用户线程,守护线程就一直在。

package com.Thread.demo1;

public class daemon {

    public static void main(String[] args) {
        God god = new God();
        Me me = new Me();

        Thread thread = new Thread(god);
        thread.setDaemon(true);//默认为false  false为用户线程

        thread.start();//守护线程启动

        new Thread(me).start();//用户线程启动

    }

}


//你
class Me implements Runnable{

    @Override
    public void run() {
        for (int i = 0; i < 36500; i++) {
            System.out.println("我还活着");
        }
        System.out.println("==========GOODBYE==============");
    }
}


//上帝
class God implements Runnable{

    @Override
    public void run() {
        while(true){
            System.out.println("上帝一直都在");
        }
    }
}

输出的一部分结果: