守护线程Daemon

来源:互联网 发布:centos怎么安装软件 编辑:程序博客网 时间:2024/05/29 10:10

    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();        }    }}