• thread ---- join


    public class TrainDemo1 {
        public static void main(String[] args){
            Gard g = new Gard();
            g.start();
            Train t1 = new Train(2000);
            Train t2 = new Train(8000);
            Train t3 = new Train(6000);
            t1.start();
            t2.start();
            t3.start();
            try { // start,join都是非阻塞的。如果没有join那么主线程不会等待子线程结束,它只管自己的执行顺序,执行时间,执行完一条紧跟
                t1.join();//下一条。
                t2.join();//如果有了join,那么主线程会监控子线程,讲他们的执行时间加入自己的时间,等到他们全部结束,然后主线程在执行它剩下的代码
                t3.join();//join期间,各个子线程并不是一个接一个的执行,而是依旧是各自执行各自的,所以,一般join的时候,主线程其实等待的是耗时最久的那个线程的执行时间
            }catch (InterruptedException e){
    
            }
            System.out.println("over");
        }
    }
    
    
    class Montain{
    
    }
    class Train extends Thread{
        private int time;
        public Train(int time){
            this.time = time;
        }
        public void run(){
            try{
                Thread.sleep(time);
            }catch (Exception e){
    
            }
        }
    }
    
    
    
    
    //守护线程
    class Gard extends Thread{
        public Gard(){
            this.setDaemon(true);
        }
        public void run(){
            while(true) {
                try {
                    System.out.println("di~~~da~~~~~");
                    Thread.sleep(1000);
                } catch (Exception e) {
    
                }
            }
        }
    }
    
  • 相关阅读:
    mvn tomcat7:help的14个命令
    leetcode Next Permutation
    leetcode Permutation
    java HashMap
    单链表反转(递归和非递归) (Java)
    java数据类型
    Multiply Strings 大数相乘 java
    SQL中如何使用UPDATE语句进行联表更新(转)
    循环建立索引
    js 跨域访问
  • 原文地址:https://www.cnblogs.com/jijizhazha/p/7740163.html
Copyright © 2020-2023  润新知