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


相关推荐: 晋江文学城电脑版官网 晋江文学城网页版直接进入  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  如何在IIS7中新建站点?详细步骤解析  中山网站制作网页,中山新生登记系统登记流程?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  如何用PHP工具快速搭建高效网站?  怎么用AI帮你设计一套个性化的手机App图标?  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  黑客如何通过漏洞一步步攻陷网站服务器?  海南网站制作公司有哪些,海口网是哪家的?  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  JS实现鼠标移上去显示图片或微信二维码  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  长沙做网站要多少钱,长沙国安网络怎么样?  Laravel如何使用Livewire构建动态组件?(入门代码)  如何用花生壳三步快速搭建专属网站?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Laravel如何使用Collections进行数据处理?(实用方法示例)  如何在云虚拟主机上快速搭建个人网站?  如何在阿里云完成域名注册与建站?  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  如何在服务器上三步完成建站并提升流量?  无锡营销型网站制作公司,无锡网选车牌流程?  制作旅游网站html,怎样注册旅游网站?  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  千库网官网入口推荐 千库网设计创意平台入口  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  如何在新浪SAE免费搭建个人博客?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  如何用低价快速搭建高质量网站?  如何快速生成高效建站系统源代码?  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  网站制作企业,网站的banner和导航栏是指什么?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  ,交易猫的商品怎么发布到网站上去?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  如何在IIS中新建站点并配置端口与物理路径?  微信小程序 input输入框控件详解及实例(多种示例)  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】