创建CountDownLatch对象时,会传入一个count数值,该对象每次调用countDown()方法会使count -- ,就是count每次减1; 调用await()方法,程序会阻塞等待,当count被减到0了之后,await()后面的程序解除阻塞,可以继续运行。
 阻塞的是调用await()方法的后续代码,调用countDown()方法count自减1,当count=0 时解除阻塞。
 如:

CountDownLatch countDownLatch = new CountDownLatch(4); //初始 count = 4
countDownLatch.countDown(); // count = 4 -1;
countDownLatch.countDown();  // count = 3-1;
countDownLatch.await(); //当count =0 ,可以执行后续代码

代码示例1: 当count不为0时,程序会一直等待。


import java.util.concurrent.CountDownLatch;public class Test {public static void main(String[] args) throws InterruptedException {CountDownLatch countDownLatch = new CountDownLatch(5);new Thread(new Runnable() {@Overridepublic void run() {System.out.println(Thread.currentThread().getName()+"已运行!");countDownLatch.countDown();}}).start();countDownLatch.await();System.out.println(" 程序执行完毕! ");}
}


代码示例2:count=0解除阻塞。


import java.util.concurrent.CountDownLatch;public class Test1 {public static void main(String[] args) throws InterruptedException {CountDownLatch countDownLatch = new CountDownLatch(5);for(int i = 0 ; i < 5 ; i++){new Thread(new Runnable() {@Overridepublic void run() {System.out.println(Thread.currentThread().getName()+"已运行!");countDownLatch.countDown();}}).start();}countDownLatch.await();System.out.println(" 程序执行完毕! ");}
}

Java中CountDownLatch类相关推荐

  1. java中properties作用,java中Properties类的使用

    java中Properties类的使用 在java.util 包下面有一个类 Properties,该类主要用于读取以项目的配置文件(以.properties结尾的文件和xml文件). Propert ...

  2. 在java中下列描述错误的是_在 JAVA 中 , 关于类的方法 , 下列描述错误的是 ()._学小易找答案...

    [多选题]价值的特性是 [简答题]输入任一字符串,统计其中数字,字母及其它字符个数 .(25分) [填空题]1.产品整体包括哪五个基本层次 2核心层次产品最基本的层次,是产品的_____ [单选题]纸 ...

  3. Java中Properties类的操作

    Java中Properties类的操作 ============================================= com.gordon.constant Constant.java: ...

  4. Java中String类的方法及说明

    String : 字符串类型 一.构造函数      String(byte[ ] bytes):通过byte数组构造字符串对象.      String(char[ ] value):通过char数 ...

  5. java程序中出现两个class,Java中Class类中两个值得注意的进行类型动态转换的方法...

    Java中的Class类有两个重要的方法:cast()和asSubclass().这两个方法都是用于Class类进行运行时(run-time)阶段的类型转换的.下面来看看他们的定义和使用: 第一个方法 ...

  6. Java 中,类、类对象、泛型之间的转换

    Java 中,类.类对象.泛型之间的转换 R 为非泛型 获得类 通过类型名来获得类 通过对象来获得类 通过类名字符串来获得类 通过类来获得类名字符串 通过类来获得对象 使用 R 的无参数构造器来创建对 ...

  7. java getabsolutepath,详谈java中File类getPath()、getAbsolutePath()、getCanonical的区别

    简单看一下描述,例子最重要. 1.getPath(): 返回定义时的路径,(就是你写什么路径,他就返回什么路径) 返回绝对路径,但不会处理"."和".."的情况 ...

  8. java中的path类_详谈java中File类getPath()、getAbsolutePath()、getCanonical的区别

    简单看一下描述,例子最重要. 1.getPath(): 返回定义时的路径,(就是你写什么路径,他就返回什么路径) 2.getAbsolutePath(): 返回绝对路径,但不会处理".&qu ...

  9. java中立方根方法_java基础:4、java中Math类的常用方法?

    4.java中Math类的常用方法? Java的Math类封装了很多与数学有关的属性和方法.如下所示: System.out.println("计算平方根--Math.sqrt(81)--  ...

最新文章

  1. 德鲁克的17条思想精髓,读懂管理的本质
  2. python如何实现通知_ExASIC: 用python实现一个通知机器人
  3. 1.7 Appium依赖添加
  4. 多媒体开发之wis-stream
  5. document.getElementsByName 标准
  6. 2011年影响3G手机发展四大因素
  7. 使用 Python 实现鼠标键盘自动化
  8. border 0px和border none的区别
  9. RStudio的下载与安装
  10. (1)关于File类你知道多少
  11. 9、杂项:qxdm报错0xc000007b无法启动
  12. 王思聪吃热狗的c语言小程序,王思聪吃热狗火了,各种恶搞小程序!王校长:我不要脸的啊...
  13. 《自己动手写网络爬虫》笔记3-宽度优先遍历互联网
  14. 每个大主播都是满屏弹幕,怎么做到的?Python实战无限刷弹幕!
  15. 2021软件测试技能大赛,2021软件测试国赛获奖感言
  16. html中怎么设置表格自动换行在哪里,【HTML】表格自动换行
  17. Multi-Tenancy模式,基础服务大规模扩张的时候,是应该推进了。
  18. 玛娜火花Mana Spark for Mac游戏介绍
  19. PyTorch踩过的坑(长期更新,转载请注明出处)
  20. python机器学习——主成分分析理论简介

热门文章

  1. HTML实现表格rowspan、colspan操作
  2. 百度指数邀请序列号_百度男星人气榜,李现第六,王一博第二,榜首王者归来...
  3. Kafka Streams(三十)
  4. 打鱼机,捕鱼游戏, 捕鱼达人
  5. linux普通用户的环境变量配置
  6. 中国人不可不知道的知识
  7. 面试阿里Android研发岗,已拿到offer,这些知识点该放出来了
  8. CCF认证 Markdown
  9. [Mybatis]Cannot convert string '\xAC\xED\x00\x05ur...' from binary to utf8mb3
  10. BIGO面试经历20190902