守护线程Daemon

    java中线程分为两种,一种是用户线程,一种是守护线程。

    守护线程是一种特殊的线程,它的特性有“陪伴”的含义,当进程中不存在非守护线程了,守护线程就会自动销毁。典型的守护线程就是垃圾回收线程(GC),当进程中没有非守护线程了,则垃圾回收线程也就没有存在的必要了,自动销毁,只要当前JVM实例中存在任何一个非守护线程没有结束,守护线程就在工作,只有当最后一个非守护线程结束时,守护线程才会随着JVM一同结束工作。
    一个例子:
    
public class DaemonTest extends Thread {
    private int i =0;
    @Override
    public void run(){
        try {
            while (true){
                i++;
                System.out.println("i="+(i));
                Thread.sleep(1000);//每循环一次停一秒
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public static void main(String args[]){
        try {
            DaemonTest thread = new DaemonTest();
            thread.setDaemon(true);//设置为守护线程
            thread.start();//开启守护线程
            Thread.sleep(5000);//五秒后主线程结束
            System.out.println("主线程结束");

        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
 
 
    

猜你喜欢

转载自blog.csdn.net/weixin_40159375/article/details/78820636