守护线程(后台线程)

守护线程(后台线程)_第1张图片
image.png

与前台线程的区别:

  • 开启、运行都没有区别,只有结束有区别:要前台线程结束后,后台线程才会结束,而且是自动结束的。
//t1,t2为守护线程时,只有主线程是前台线程,挡住线程结束时,两个守护线程会自动结束。
class StopThread implements Runnable{
    private boolean flag = true;
    public synchronized void run(){
        while(flag){
            System.out.println(Thread.currentThread().getName()+".....run");
        }
    }
    public void changeFlag(){
        flag = false;
    }
}
class StopDemo{
    public static void main(String[] args){
        StopThread st = new StopThread();

        Thread t1 = new Thread(st);
        Thread t2 = new Thread(st);

        t1.setDaemon(true); //将t1设置为守护线程
        t2.setDaemon(true); //将t2设置为守护线程
        t1.start();
        t2.start();

        int num = 0;
        while(true){
            num++;
            if(num == 60){
                //st.changeFlag();
                //t1.interrupt();   //中断线程t1,
                //t2.interrupt();
                break;
            }
            System.out.println(Thread.currentThread().getName()+".............."+num);
        }
    }
}

你可能感兴趣的:(守护线程(后台线程))