全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java中多线程同步类 CountDownLatch

在多线程开发中,常常遇到希望一组线程完成之后在执行之后的操作,java提供了一个多线程同步辅助类,可以完成此类需求:

类中常见的方法:

其中构造方法:

CountDownLatch(int count) 参数count是计数器,一般用要执行线程的数量来赋值。

long getCount():获得当前计数器的值。

void countDown():当计数器的值大于零时,调用方法,计数器的数值减少1,当计数器等数零时,释放所有的线程。

void await():调所该方法阻塞当前主线程,直到计数器减少为零。

代码例子:

线程类:

import java.util.concurrent.CountDownLatch;
public class TestThread extends Thread{
CountDownLatch cd;
String threadName;
public TestThread(CountDownLatch cd,String threadName){
 this.cd=cd;
 this.threadName=threadName;

}
@Override
public void run() {
 System.out.println(threadName+" start working...");
 dowork();
 System.out.println(threadName+" end working and exit...");
 cd.countDown();//告诉同步类完成一个线程操作完成

}
private void dowork(){
 try {
 Thread.sleep(2000);
 System.out.println(threadName+" is working...");
 } catch (InterruptedException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }

}

}

测试类:

import java.util.concurrent.CountDownLatch;
public class TsetCountDownLatch {

 public static void main(String[] args) {
 try {
  CountDownLatch cd = new CountDownLatch(3);// 表示一共有三个线程
  TestThread thread1 = new TestThread(cd, "thread1");
  TestThread thread2 = new TestThread(cd, "thread2");
  TestThread thread3 = new TestThread(cd, "thread3");
  thread1.start();
  thread2.start();
  thread3.start();
  cd.await();//等待所有线程完成
  System.out.println("All Thread finishd");
 } catch (InterruptedException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
}

输出结果:

 thread1 start working...
 thread2 start working...
 thread3 start working...
 thread2 is working...
 thread2 end working and exit...
 thread1 is working...
 thread3 is working...
 thread3 end working and exit...
 thread1 end working and exit...
 All Thread finishd

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# countdownlatch  # java多线程CountDownLatch与线程池ThreadPoolExecutor/Execut  # Java countDownLatch如何实现多线程任务阻塞等待  # 如何使用CountDownLatch同步java多线程  # java使用CountDownLatch等待多线程全部执行完成  # JAVA多线程CountDownLatch使用详解  # Java中CountDownLatch进行多线程同步详解及实例代码  # 详解Java多线程编程中CountDownLatch阻塞线程的方法  # Java多线程编程之CountDownLatch同步工具使用实例  # Java多线程之同步工具类CountDownLatch  # 零时  # 多线程  # 此类  # 为零  # 类中  # pre  # class  # strong  # await  # import  # concurrent  # public  # TestThread  # brush  # extends  # util  # countDown  # text  # align  # center 


相关文章: 企业网站制作公司网页,推荐几家专业的天津网站制作公司?  如何快速搭建高效简练网站?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  如何用y主机助手快速搭建网站?  建站之星后台密码遗忘如何找回?  c# 在高并发场景下,委托和接口调用的性能对比  网站制作软件有哪些,制图软件有哪些?  网站按钮制作软件,如何实现网页中按钮的自动点击?  为什么Go需要go mod文件_Go go mod文件作用说明  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  C#如何在一个XML文件中查找并替换文本内容  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何通过万网虚拟主机快速搭建网站?  建站主机选购指南与交易推荐:核心配置解析  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  设计网站制作公司有哪些,制作网页教程?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  黑客如何利用漏洞与弱口令入侵网站服务器?  想学网站制作怎么学,建立一个网站要花费多少?  建站主机选购指南:核心配置优化与品牌推荐方案  如何快速使用云服务器搭建个人网站?  网站代码制作软件有哪些,如何生成自己网站的代码?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  常州企业网站制作公司,全国继续教育网怎么登录?  如何在局域网内绑定自建网站域名?  网站制作企业,网站的banner和导航栏是指什么?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  江苏网站制作公司有哪些,江苏书法考级官方网站?  临沂网站制作企业,临沂第三中学官方网站?  建站DNS解析失败?如何正确配置域名服务器?  建站主机功能解析:服务器选择与快速搭建指南  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  如何选择香港主机高效搭建外贸独立站?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  音乐网站服务器如何优化API响应速度?  做企业网站制作流程,企业网站制作基本流程有哪些?  如何破解联通资金短缺导致的基站建设难题?  制作宣传网站的软件,小红书可以宣传网站吗?  C++如何将C风格字符串(char*)转换为std::string?(代码示例)  济南网站制作的价格,历城一职专官方网站?  Swift中循环语句中的转移语句 break 和 continue  网站制作免费,什么网站能看正片电影?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  如何挑选优质建站一级代理提升网站排名?  平台云上自主建站:模板化设计与智能工具打造高效网站  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  建站主机选购指南:核心配置与性价比推荐解析  实例解析angularjs的filter过滤器  营销式网站制作方案,销售哪个网站招聘效果最好? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。