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();
        }
    }
    逃避不一定躲得过,面对不一定最难过
  • 相关阅读:
    最新可靠好用的DNS服务器地址汇总
    使用 MNIST 图像识别数据集
    MNIST手写数字数据库
    OCR学习及tesseract的一些测试
    Improving the quality of the output
    解决Web部署 svg/woff/woff2字体 404错误
    Bootstrap 网格系统(Grid System)的工作原理
    手写数字样本库的下载地址
    Tesseract-OCR 训练过程 V3.02
    tesseract-orc 合并识别结果
  • 原文地址:https://www.cnblogs.com/yangzhenlong/p/5231681.html
Copyright © 2011-2022 走看看