全网整合营销服务商

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

免费咨询热线: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 


相关文章: 淘宝制作网站有哪些,淘宝网官网主页?  网站制作壁纸教程视频,电脑壁纸网站?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  C++时间戳转换成日期时间的步骤和示例代码  网站代码制作软件有哪些,如何生成自己网站的代码?  制作销售网站教学视频,销售网站有哪些?  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  股票网站制作软件,网上股票怎么开户?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  建站主机系统SEO优化与智能配置核心关键词操作指南  如何高效完成自助建站业务培训?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  如何在云主机上快速搭建多站点网站?  建站之星如何配置系统实现高效建站?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  网站制作企业,网站的banner和导航栏是指什么?  如何在局域网内绑定自建网站域名?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  网站制作模板下载什么软件,ppt模板免费下载网站?  制作企业网站建设方案,怎样建设一个公司网站?  如何用已有域名快速搭建网站?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  Python如何创建带属性的XML节点  建站之星后台密码遗忘或太弱?如何重置与强化?  Android使用GridView实现日历的简单功能  如何在VPS电脑上快速搭建网站?  建站为何优先选择香港服务器?  Java解压缩zip - 解压缩多个文件或文件夹实例  内网网站制作软件,内网的网站如何发布到外网?  制作宣传网站的软件,小红书可以宣传网站吗?  建站主机选虚拟主机还是云服务器更好?  如何用西部建站助手快速创建专业网站?  如何快速上传建站程序避免常见错误?  公众号网站制作网页,微信公众号怎么制作?  详解jQuery中基本的动画方法  建站中国官网:模板定制+SEO优化+建站流程一站式指南  如何做网站制作流程,*游戏网站怎么搭建?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  北京网站制作网页,网站升级改版需要多久?  如何在阿里云购买域名并搭建网站?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  如何挑选优质建站一级代理提升网站排名?  如何通过云梦建站系统实现SEO快速优化?  如何在阿里云通过域名搭建网站?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何选择高效稳定的ISP建站解决方案?  如何获取上海专业网站定制建站电话?  湖北网站制作公司有哪些,湖北清能集团官网?  中山网站推广排名,中山信息港登录入口? 

您的项目需求

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