zoukankan      html  css  js  c++  java
  • 现在有T1、T2、T3三个线程,怎样保证T2在T1执行完后执行,T3在T2执行完后执行?使用Join

    public class TestJoin
    {
        public static void main(String[] args)
        {
            Thread t1 = new MyThread("线程1");
            Thread t2 = new MyThread("线程2");
            Thread t3 = new MyThread("线程3");
            
            try
            {
                //t1先启动
                t1.start();
                t1.join();
                //t2
                t2.start();
                t2.join();
                //t3
                t3.start();
                t3.join();
            }
            catch (InterruptedException e)
            {
                e.printStackTrace();
            }
        }
    }
    
    class MyThread extend Thread{
        public MyThread(String name){
    setName(name);
    } @Override
    public void run() { for (int i = 0; i < 5; i++) { System.out.println(Thread.currentThread().getName()+": "+i); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } }

    还有一种方式,在t3开始前join t2,在t2开始前join t1

    public class TestJoin2
    {
        public static void main(String[] args)
        {
            final Thread t1 = new Thread(new Runnable() {
    
                @Override
                public void run() {
                    System.out.println("t1");
                }
            });
            final Thread t2 = new Thread(new Runnable() {
    
                @Override
                public void run() {
                    try {
                        //引用t1线程,等待t1线程执行完
                        t1.join();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println("t2");
                }
            });
            Thread t3 = new Thread(new Runnable() {
    
                @Override
                public void run() {
                    try {
                        //引用t2线程,等待t2线程执行完
                        t2.join();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println("t3");
                }
            });
            t3.start();
            t2.start();
            t1.start();
        }
    }
    逃避不一定躲得过,面对不一定最难过
  • 相关阅读:
    HttpWebRequest 的一个 异步封装
    AcWing 6 多重背包问题III【单调对列优化】
    AcWing 8. 二维费用的背包问题
    AcWing 1019. 庆功会
    P1421 小玉买文具
    P5709 【深基2.习6】Apples Prologue / 苹果和虫子
    P2181 对角线
    AcWing 1020. 潜水员
    AcWing 1013. 机器分配【分组背包+求方案数】
    AcWing 7. 混合背包问题
  • 原文地址:https://www.cnblogs.com/yangzhenlong/p/5231681.html
Copyright © 2011-2022 走看看