守护线程和非守护线程

守护线程和非守护线程

java线程中有两种线程,一种是用户线程(非守护线程),一种是守护线程。
守护线程是一种特殊的线程,它具有陪伴的含义。当进程中不存在非守护线程了,则守护线程自动销毁。典型的就是垃圾回收进程。当进程中没有非守护线程了,则垃圾回收线程没有存在的必要,自动销毁。任何一个守护线程都是整个JVM中所有非守护线程的保姆。只要当前JVM中有非守护线程没有结束,守护线程就在工作。只有当最后一个非守护线程不工作的时候,守护进程才随着JVM一同结束工作。Dammon(守护进程)的作用是为非守护进程的运行提供便利服务。守护进程最典型的应用是GC(垃圾回收器),它是很称职的守护者。

public class MyThread extends Thread {
    private int count = 0;

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    @Override
    public void run() {
        while (true){
            count++;
            System.out.println("i="+count);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

    }
public class TestMyThread {
    //
    public static void main(String[] args) {
        try {

            MyThread myThread = new MyThread();
            myThread.setDaemon(true);
            myThread.start();
            Thread.sleep(5000);
            System.out.println("当main线程非守护线程运行技术后,mythread线程也停止了");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }


    }


}

《JAVA核心多线程编程核心技术》

你可能感兴趣的:(JAVA线程)