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

    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();
    }
    

    }

  • 相关阅读:
    python的进阶--爬虫小试
    【centos 7】搭FTP服务和web访问
    centos 7 安装python3.5
    centos 6.5 安装mysql 5.6.35--libc.so.6(GLIBC_2.14)(64bit)
    windows 10 下安装python 2.7
    centos7-硬盘坏道检测
    centos7 默认进入系统命令行模式修改
    zabbix安装配置(2.4.5)
    Centos 7 mysql 安装使用记
    docker部署angular和asp.net core组成的前后端分离项目
  • 原文地址:https://www.cnblogs.com/zhuyeshen/p/11005221.html
Copyright © 2011-2022 走看看