Thread t1 = new Thread(new T1()); 
Thread t2 = new Thread(new T2()); 
Thread t3 = new Thread(new T3());

t1.start(); 
t1.join();

t2.start(); 
t2.join();

t3.start(); 
t3.join();

主要是使用了join()方法

看看jdk的join方法是如何实现的吧

 1 public final synchronized void join(long millis)
 2     throws InterruptedException {
 3         long base = System.currentTimeMillis();
 4         long now = 0;
 5
 6         if (millis < 0) {
 7             throw new IllegalArgumentException("timeout value is negative");
 8         }
 9
10         if (millis == 0) {
11             while (isAlive()) {
12                 wait(0);
13             }
14         } else {
15             while (isAlive()) {
16                 long delay = millis - now;
17                 if (delay <= 0) {
18                     break;
19                 }
20                 wait(delay);
21                 now = System.currentTimeMillis() - base;
22             }
23         }
24     }

View Code

转载于:https://www.cnblogs.com/v-lcc/p/9763827.html

现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?...相关推荐

  1. java三个线程 顺序执行_如何确保三个线程顺序执行

    三个线程t1.t2.t3.确保三个线程,t1执行完后t2执行,t2执行完后t3执行. 一.使用join thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程. ...

  2. 有三个线程T1,T2,T3,下面方法可以确保它们按顺序执行的有()该线程继续执行

    1.先启动最后一个(T3调用T2,T2调用T1) package com.te;public class Testt {static Testt t=new Testt();class T1 exte ...

  3. 三个线程依次顺序执行

    保证三个线程依次按顺序执行 在有一些需求的情况下,我们需要三个线程依次按顺序执行,那么有人就会问了,为什么不把三个线程的run方法依次放到三个方法体中,然后依次执行,按顺序调用三个方法体,这样不是同样 ...

  4. 【Java面试高频-多线程】- 三个线程分别负责打印A,B和C,循环100次

    (2)面试真题-三个线程分别负责打印A,B和C,循环100次 a.ReentrantLock和Condition来完成这项工作 package com.lcz.thread; // 三个线程 // 匿 ...

  5. 十二个任务 分给三个线程处理

    2019独角兽企业重金招聘Python工程师标准>>> package day02; //实现手动分配 public class H {     private Thread t1; ...

  6. 多线程:保证三个线程依次按顺序执行?newSingleThreadExecutor!!!

    newSingleThreadExecutor 这个线程池,保证线程里面的任务依次执行,这让我发现了新大陆, 立马实践了一下,发现不负所望: public class TestJoin {public ...

  7. 如何实现ABC三个线程按顺序执行十次

    题目要求:创建三个线程,每个线程分别打印ABC,并按照ABC的顺序执行十次 题目可以使用多种不同的方式解决,下面我们分别使用 Condition 等待唤醒机制.Semaphore 信号量.CountD ...

  8. C++多线程并发(三)---线程同步之条件变量

    文章目录 一.何为条件变量 二.为何引入条件变量 三.如何使用条件变量 更多文章: 一.何为条件变量 在前一篇文章<C++多线程并发(二)-线程同步之互斥锁>中解释了线程同步的原理和实现, ...

  9. C++多线程学习(三)——线程同步之条件变量

    前面学习了互斥量似乎我们就可以多线程编程了,多线程也不过如此嘛.然而我们上手coding,用多线程来结局我们实际需求就会发现,似乎多线程也不是很好用.因为我们实际对于多线程的需求,往往线程都是whil ...

最新文章

  1. 关于60枚一分两分五分硬币凑成一块钱的解决方法
  2. 解决bash: mysql: command not found 的方法
  3. mysql之触发器详解_学习笔记之MySQL触发器详解
  4. CTR预估中GBDT与LR融合方案
  5. 如何使用 Barracuda 防火墙设置/保护 Azure 应用程序
  6. 清华大学计算机组成与体系结构,清华大学出版社-图书详情-《计算机组成与体系结构(第2版)》...
  7. java 操作db2_java操作DB2,增删改查
  8. flowable DMN部署单独使用_06
  9. VC实现在ListBox中选择背景位图
  10. python--继承
  11. 【编译原理笔记05】语法分析:FIRST集和FOLLOW集的计算,[非]递归的预测分析法,预测分析中的错误处理
  12. 中国一共有多少个神仙?
  13. php市场占比 2019,2019年家电市场份额占比排名
  14. 计算机word论文,怎么用电脑Word写论文?
  15. mongodb数据库自动备份
  16. 是否真的输在起跑线上?
  17. 将两个数组中的数进行交换
  18. GANSS ALT71D键盘使用说明
  19. apache安装过程
  20. 解决vue-router报NavigationDuplicated: Avoided redundant navigation to current location: “/login“ 的问题

热门文章

  1. 使用svn控制系统的优缺点和注意事项
  2. Gym 100883J palprime(二分判断点在凸包里)
  3. 10个迷惑新手的Cocoa,Objective-C开发难点和问题
  4. 如何让一滴水不蒸发?
  5. 遇到一个由于事务控制不当造成错误的Bug
  6. 【Mac visual studio community使用技巧】打开vs如何查看解决方案等
  7. 大数据时代 安全与应用的博弈
  8. Linux下配置SSL (转)
  9. 修改项目名称后,部署到tomcat问题
  10. 解析不是utf-8的xml文件 附(tag 属性的获取 )