zoukankan      html  css  js  c++  java
  • 多线程join (wait-notify-synchronized)

    join主要为让多线程按顺序执行

        源码:wait-notify-synchronized

    public class Thread008 implements Runnable{

     public static void main(String[] args){
        //主线程调用t1.join 主线程阻塞且释放锁
        //必须等待t1线程执行完的情况下 主线程才能继续执行
      try{
        Thread t1=new Thread(new Thread008(),"T1");
        Thread t2=new Thread(new Thread008(),"T2");
        Thread t3=new Thread(new Thread008(),"T3");
        t1.start();
        t1.join();
        t2.start();
        t2.join();
        t3.start();
        t3.join();
        for(int j=0;j<20;j++){
          System.out.println(Thread.currentThread().getName()+","+j);
        }
      }catch (Exception e){

      }
     }

      @Override
      public void run() {
        for(int i=0;i<20;i++){
          System.out.println(Thread.currentThread().getName()+","+i);
        }
      }

    }

     

    public class Thread008  implements  Runnable{

        Thread t;

        public Thread008(Thread thread) {
            this.t = thread;
        }

        public static  void main(String[] args){
            //主线程调用t1.join 主线程阻塞且释放锁
            //必须等待t1线程执行完的情况下 主线程才能继续执行
            try{
                Thread t1=new Thread(new Thread008(null),"T1");
                Thread t2=new Thread(new Thread008(t1),"T2");
                Thread t3=new Thread(new Thread008(t2),"T3");
                t1.start();
                t2.start();
                t3.start();
                t1.join();
                t2.join();
                t3.join();
                for(int j=0;j<20;j++){
                    System.out.println(Thread.currentThread().getName()+","+j);
                }
            }catch (Exception e){

            }
        }

        @Override
        public void run() {
            try {
                if(t!=null){
                    t.join();
                }
            }catch (Exception e){

            }
            for(int i=0;i<20;i++){
                System.out.println(Thread.currentThread().getName()+","+i);
            }
        }
    }

  • 相关阅读:
    Dom-Align
    antd Dialog 学习笔记
    setState 同步 与异步
    移动端使用iframe碰到的那些坑
    谈页面上下滑动时,页面顶部导航等部分元素的定位方式发生改变
    一款table结合分页的插件
    监听页面滚动时间时所碰到的一些坑
    值得收藏的前端大牛博客
    后端时间转js时间,主要用于取倒计时
    论jquery与vuejs结合时的部分问题
  • 原文地址:https://www.cnblogs.com/smallfa/p/14630763.html
Copyright © 2011-2022 走看看