zoukankan      html  css  js  c++  java
  • 守护线程

    main线程是用户线程;只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM一同结束工作。

    守护线程是在用户线程都退出时,突然退出的,此时守护线程的任务不一定完成了。

    public class rrr {
        public static void main(String[] ddd){
            FutureTimeOutThread timeOutThread = new FutureTimeOutThread();
            timeOutThread.setDaemon(true);//守护线程, 
            timeOutThread.start();
            
            FutureTimeOutThread2 timeOutThread1 = new FutureTimeOutThread2();
            timeOutThread1.setDaemon(false);// 不是守护
            timeOutThread1.start();
            
            System.out.println("2222");
        }
        static class FutureTimeOutThread extends Thread{//守护
            @Override
            public void run() {
                FutureTimeOutThread1 timeOutThread = new FutureTimeOutThread1();
                timeOutThread.start();
                for(int i =0;i<3;i++) {//外层线程退出,里面开的线程不会退出,只有非守护都退出才退出
                    System.out.println("1111");
                }
            }
        }
        static  class FutureTimeOutThread1 extends Thread{//默认也是守护
                @Override
                public void run() {
                    for(int i =0;i<3;i++) {
                        System.out.println("222");
                    }
                }
            }
        static  class FutureTimeOutThread2 extends Thread{//不是守护
                @Override
                public void run() {//main线程执行完,只要这个非守护线程还在,守护就还在。
                    //main执行完,这个非守护可以一直执行。
                    //main和这个非守护都执行完,守护立马退出。
                    //守护都执行完,这个非守护不会退出
                    for(int i =0;i<3;i++) {
                        System.out.println("333");
                    }
                }
            }
    }
  • 相关阅读:
    3.15第三周编程总结
    2019.3.9编程总结
    2019.3.3编程总结2
    编程总结1
    编程总结2
    编程总结3
    我的老师
    关于sublime text 3使用记录
    12. 整数转罗马数字
    4. 寻找两个有序数组的中位数
  • 原文地址:https://www.cnblogs.com/yaowen/p/10695440.html
Copyright © 2011-2022 走看看