Java主线程等待所有子线程执行完毕再执行解决办法(转)
方法一:
Thread.join()方法,亲测可行,thread.join()方法
- Vector<Thread> ts = new Vector<Thread>();
- for (int i = 0; i < 200; i++) {
- Thread t = new Thread(new Runnable() {
- @Override
- public void run() {
- Counter.inc();
- }
- });
- ts.add(t);
- t.start();
- }
- for (Thread t : ts) {
- try {
- t.join();
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- System.out.println("----------" + Counter.count);
(全部代码见上一篇文章)
这个循环中的join的意思是:子线程排好队,欢迎新同学main线程,main线程对着排好队的他们说,我站你后边,我站你后边,我站你后边。。。。(ts.size()次)。然后站到最后一个的后面了。恩、
方法二:
用线程池。
代码:
- ExecutorService threadPool = Executors.newScheduledThreadPool(10);
- ExecutorService threadPool = Executors.newCachedThreadPool();
- for (int i = 0; i < 200; i++) {
- threadPool.execute(new Runnable() {
- @Override
- public void run() {
- chi.inc();
- }
- });
- }
- threadPool.shutdownNow();
- try {
- threadPool.awaitTermination(3, TimeUnit.MICROSECONDS);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- System.out.println("------" + chi.count);
Executors是个工厂,(工厂模式),创建出几种不同类别的线程池。这里我用ScheduledThreadPool。(因为好使,注释掉的那种不知为什么不管用)。
然后用shutdownNow(),这个方法是马上停止(试图)正在执行的任务,线程池进入STOP状态,不再开启正在等待的线程。
对比的,shutdown()方法是阻止等待中的进程开启,等待所有正在执行的进程完成。
转载于:https://www.cnblogs.com/panxuejun/p/7811105.html
Java主线程等待所有子线程执行完毕再执行解决办法(转)相关推荐
- java主线程等待所有子线程执行完毕再执行
java主线程等待所有子线程执行完毕在执行,这个需求其实我们在工作中经常会用到,比如用户下单一个产品,后台会做一系列的处理,为了提高效率,每个处理都可以用一个线程来执行,所有处理完成了之后才会返回给用 ...
- Java多线程、主线程等待所有子线程执行完毕、共享资源
1.Java创建与启动线程 Java提供两种方式创建和启动线程:1.直接Thread类,2.实现Runable接口. 1.1 继承Thread类 public class myThread exte ...
- java 父线程_Java父线程(或是主线程)等待所有子线程退出的实例
导读热词 实例如下: static void testLock1(){ final AtomicInteger waitCount = new AtomicInteger(30000); final ...
- 主线程等待所有子线程结束的4种方法
目录 主线程不等待子线程全部结束 1.使用CountDownLatch 2.同步屏障CyclicBarrier 2.1.CyclicBarrier使用 2.2.CyclicBarrier复用 2.3. ...
- python 主程序等待 子线程_Python多线程中主线程等待所有子线程结束的方法
Python多线程中主线程等待所有子线程结束的方法 发布时间:2020-07-30 14:39:04 来源:亿速云 阅读:77 作者:小猪 这篇文章主要讲解了Python多线程中主线程等待所有子线程结 ...
- 线程池如何保证所有子线程运行完再执行主线程
Java主线程等待所有子线程执行完毕在执行,其实在我们的工作中经常的用到,比如说主线程要返回一个响应用户的值,但这个值得赋值过程是由过个子线程来完成的(模拟一个实际开发的情景),所以主线程必须等待子线 ...
- 如何实现java主线程等待子线程执行完毕之后再执行?
本文转自:问题:如何实现java主线程等待子线程执行完毕之后再执行? - jseven - 博客园 点击关注强哥,查看更多精彩文章呀 工作总往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完 ...
- Java主线程等待子线程、线程池
public class TestThread extends Thread { public void run() { System.out.println(this.getName() + &qu ...
- Thread:主线程等待子线程执行完毕再执行解决办法
线程从启动到执行完毕,一般会有一些耗时操作,并不能像一般的程序语句,就能立马结束.如下代码: package com.xxx.async; public class WaitThreadDone {p ...
最新文章
- 关于移动CRM的学习(一)
- python语言有什么用-为什么现在很多人都使用Python语言有什么优势
- Spring boot+Spring Security 4配置整合实例
- Jenkins构建自动化任务
- 【图像处理】——上采样、下采样、在模板匹配中的金字塔加速策略
- SQL-ALTER-change和modify区别
- 皕杰报表和炎黄盈动(AWS BPM)集成 操作手册
- json文件解析工具_JSON格式的文本文件,怎么解析不成功?
- 【干货】奢侈品线上消费圈层洞察-阿里妈妈.pdf(附下载链接)
- 昔年浅谈化工平台网站怎么吸引客户咨询入驻呢?
- JSK-27321 统计单词数【字符串】
- 解决webpack5打包html中图片后图片无法显示问题
- 使用javascript下载网络图片
- python全系列官方中文文档
- GD32F303xx 使用 jlink-segger功能
- 14届数独-真题标准数独-Day 4-20220119
- HTML基础-跟着李南江学编程
- 图像质量评估---FID
- 利用手机距离感应器来切换扬声器和听筒播放
- SAP资产负债表实现方案探索 - 基于 VBA 自定义函数方法
热门文章
- AngularJs的UI组件ui-Bootstrap分享(六)——Tabs
- delphi中等待外部应用程序执行完成后,再继续执行自有代码段
- 亚马逊AWS在线系列讲座——基于AWS云平台的高可用应用设计
- 红茶一杯话Binder(传输机制篇_上)
- Tomcat 启动错误 org/eclipse/jdt/debug/core/JDIDebug...
- vue中动态渲染组件
- C++基础——类继承
- fork() 成为负担,需要淘汰
- CSS题目系列(1) - 可滚动的Table
- FactoryMethod工厂方法模式升级成AbstractFactory抽象工厂模式