Java实现等待所有子线程结束后再执行一段代码的方法

发布时间 - 2026-01-11 02:59:34    点击率:

本文实例讲述了Java实现等待所有子线程结束后再执行一段代码的方法。分享给大家供大家参考,具体如下:

今天有一个需求是:在一个方法中开启了一个子线程来执行操作,返回值依赖于子线程的执行结果,这样如果要返回正确的值,就需要开启子线程后

主线程等待子线程,然后子线程执行结束后,主线程再继续执行。

主线程等待子线程需要用到:CountDownLatch

代码如下:

import java.util.concurrent.CountDownLatch;
public class Counter {
  public static int count = 0;
  static CountDownLatch cdl=new CountDownLatch(1000);//这里的数字,开启几个线程就写几
  public synchronized static void inc() throws InterruptedException{//注意,如果不加上synchronized,由于并发写入,结果会小于1000
    Thread.sleep(1);
    count++;
    cdl.countDown();
  }
  public static void main(String[] args) throws InterruptedException{
    for(int i = 0; i < 1000; i++){
      new Thread(new Runnable(){
        public void run() {
          // TODO Auto-generated method stub
          try {
            Counter.inc();
          } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          }
        }
      }
      ).start();
    }
    cdl.await();//主线程等待子线程执行输出
    System.out.println(count);
  }
}

更多java相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


# Java  # 等待  # 子线程  # 结束  # 执行  # 代码  # Java结束线程的三种方法及该如何选择  # 正确结束Java线程的方法  # Java创建与结束线程代码示例  # java通过共享变量结束run停止线程的方法示例  # Java如何判断线程是否结束的三种方法  # 操作技巧  # 结束后  # 几个  # 相关内容  # 感兴趣  # 数据结构  # 给大家  # 所述  # 程序设计  # 有一个  # 就写  # 返回值  # 讲述了  # 依赖于  # 开启了  # util  # brush 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Python函数文档自动校验_规范解析【教程】  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  高端智能建站公司优选:品牌定制与SEO优化一站式服务  ,南京靠谱的征婚网站?  清除minerd进程的简单方法  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  Laravel怎么在Controller之外的地方验证数据  企业网站制作这些问题要关注  如何在万网开始建站?分步指南解析  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  如何在VPS电脑上快速搭建网站?  如何制作一个表白网站视频,关于勇敢表白的小标题?  JavaScript实现Fly Bird小游戏  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  详解Android图表 MPAndroidChart折线图  android nfc常用标签读取总结  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  Laravel如何升级到最新版本?(升级指南和步骤)  JavaScript如何实现类型判断_typeof和instanceof有什么区别  常州企业网站制作公司,全国继续教育网怎么登录?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  活动邀请函制作网站有哪些,活动邀请函文案?  如何在 React 中条件性地遍历数组并渲染元素  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  太平洋网站制作公司,网络用语太平洋是什么意思?  如何在IIS中新建站点并配置端口与物理路径?  如何用西部建站助手快速创建专业网站?  Laravel用户密码怎么加密_Laravel Hash门面使用教程  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  北京企业网站设计制作公司,北京铁路集团官方网站?  Python结构化数据采集_字段抽取解析【教程】  用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  IOS倒计时设置UIButton标题title的抖动问题  非常酷的网站设计制作软件,酷培ai教育官方网站?  lovemo网页版地址 lovemo官网手机登录  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  米侠浏览器网页背景异常怎么办 米侠显示修复  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何在阿里云购买域名并搭建网站?  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  如何实现javascript表单验证_正则表达式有哪些实用技巧  如何为不同团队 ID 动态生成多个非值班状态按钮  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?