总结三个方法:

(1)join方法,直接将每个线程都join进去即可。

(2)countdownlatch,内部维持一个计数操作,通过cas算法保证操作的原子性,当线程执行完之后,调用countDown()方法,将计数减一,主线程调用countdownlatch对象的await()方法,将当前线程挂起,直到countdownlatch对象的计数为0,主线程执行。

(3)类似屏障的东西,当子线程执行完之后,调用CyclicBarrier对象的await()方法,直到指定数量的线程到达屏障之后,才会继续执行主线程。把每一个子线程比作&&符号的一个条件,那么只有到所有条件都满足时,才会执行主线程。

如何让主线程等待子线程执行完毕后再执行相关推荐

  1. 【多线程】学习记录七种主线程等待子线程结束之后在执行的方法

    最近遇到一个问题需要主线程等待所有的子线程结束,才能开始执行,统计所有的子线程执行结果,返回,网上翻阅各种资料,最后记录一下,找到七种方案 第一种:while循环 对于"等待所有的子线程结束 ...

  2. 如何实现java主线程等待子线程执行完毕之后再执行?

    本文转自:问题:如何实现java主线程等待子线程执行完毕之后再执行? - jseven - 博客园 点击关注强哥,查看更多精彩文章呀 工作总往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完 ...

  3. c++主线程等待子线程结束_简单明了的 Python 多线程来了 | 原力计划

    作者 | 万里羊责编 | 王晓曼出品 | CSDN博客线程和进程计算机的核心是CPU,它承担了所有的计算任务,就像是一座工厂在时刻运行.如果工厂的资源有限,一次只能供一个车间来使用,也就是说当一个车间 ...

  4. java 主线程等待_Java实现主线程等待子线程

    本文介绍两种主线程等待子线程的实现方式,以5个子线程来说明: 1.使用Thread的join()方法,join()方法会阻塞主线程继续向下执行. 2.使用Java.util.concurrent中的C ...

  5. Java多线程之----主线程会等待子线程结束再结束么,怎么让主线程等待子线程结束呐?

    首先给出结论: 主线程和子线程之间没有谁先谁后结束这种关联,它们只是各自负责自己的线程任务,如果该线程的任务结束了,该线程自然会结束运行. talk is cheap,show me the code ...

  6. Java并发编程原理与实战六:主线程等待子线程解决方案

    Java并发编程原理与实战六:主线程等待子线程解决方案 参考文章: (1)Java并发编程原理与实战六:主线程等待子线程解决方案 (2)https://www.cnblogs.com/pony1223 ...

  7. Java主线程等待子线程、线程池

    public class TestThread extends Thread { public void run() { System.out.println(this.getName() + &qu ...

  8. java等待5秒_Java并发编程-主线程等待子线程解决方案

    主线程等待所有子线程执行完成之后,再继续往下执行的解决方案 public class TestThread extends Thread { public void run() { System.ou ...

  9. Thread:主线程等待子线程执行完毕再执行解决办法

    线程从启动到执行完毕,一般会有一些耗时操作,并不能像一般的程序语句,就能立马结束.如下代码: package com.xxx.async; public class WaitThreadDone {p ...

  10. 【Java并发编程】主线程等待子线程的多种方法

    文章目录 1.Thread sleep() 2.Thread join() 3.synchronized 等待唤醒机制 4.ExecutorService isTerminated() + while ...

最新文章

  1. linux(六)之文本操作
  2. Android实例剖析笔记(四)
  3. 1.17 StringBuffer类详解
  4. linux下使用VS CODE + CMAKE 调试C++程序
  5. 160 - 6 aLoNg3x.1
  6. 前端学习(2916):事件绑定
  7. mysql命令_MySql常用命令
  8. Linux 大文件快速处理小的办法
  9. Bailian2992 Lab杯【排序】
  10. 【代码源 Div1 - 109】#454. Minimum Or Spanning Tree(最小生成树,边权按位或,贪心,并查集) CF1624G
  11. expert php and mysql_Expert PHP and Mysql
  12. Keil MDK5的安装及破解详细步骤
  13. java bartender_BarTender Web Print Server可用的打印方法
  14. 【数据结构06】二叉平衡树(AVL树)
  15. Installshield 静默安装
  16. 机器学习——武林盟主分享机器学习之武功秘籍
  17. 冲激函数和傅里叶变换
  18. android 照片裁剪_如何在Android上裁剪和编辑照片
  19. 【AI产品】认猫、认花、认车、认吃,请认准识别全能王
  20. 黑白琴键 java_黑白琴键上的爱阅读答案

热门文章

  1. 一个安卓终端客户端:JuiceSSH
  2. 2020字节跳动数据库面试题及答案(二)—— NoSQL部分
  3. 终身学习(LifeLong Learning)/ 增量学习(Incremental Learning)、在线学习(Online Learning)
  4. Unity修改Android Manifest文件遇到的坑
  5. 红黑树----红黑树插入和删除结点的全程演示
  6. newma如何解除usb限制_【解除USB限制原来如此简单】
  7. HDU 4276 The Ghost Blows Light 最短路+树形背包
  8. 手机facebook注销_如何在Android设备上注销Facebook Messenger
  9. int argc,char *argv[ ] 解析
  10. DNS域名解析实现一个域名对应多个IP地址DNS以及优缺点