一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。

类似计数器,当计数器的值为0时,继续往下执行。

 package ch03;

 import java.util.Random;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; public class CountDownLatchTest { public static void main(String[] args) {
ExecutorService threadPool = Executors.newCachedThreadPool();
//初始值设置为2
final CountDownLatch latch = new CountDownLatch(2);
for(int i=0; i<2; i++){
Runnable runnable = new Runnable() { @Override
public void run() {
try {
Thread.sleep(new Random().nextInt(6000));
System.out.println("子线程执行。。。");
//计数器自减
latch.countDown();
} catch (Exception e) {
e.printStackTrace();
}
}
};
threadPool.execute(runnable);
} try {
//等待计数器自减到0,然后再往下执行。
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("主线程....");
} }

最新文章

  1. 一个Java文件至多包含一个公共类
  2. QuartusII Design partion and logic lock
  3. Daily Scrum Meeting ——SixthDay
  4. setTimeout和setInterval的各自使用场景
  5. 一个Public的字段引起的,谈谈继承中的new
  6. js java正则表达式替换手机号4-7位为星*号
  7. 从零开始学ios开发(十五):Navigation Controllers and Table Views(中)
  8. C++ 读取XML文件(tinyXML库的应用)
  9. Unity_与android交互
  10. [经典] 最X(长 | 大和 | 大积)Y(子序列 | 子字符串)
  11. Tomcat和Java Virtual Machine的性能调优总结
  12. 006-接收键盘的输入(read)
  13. 四大机器学习编程语言对比:R、Python、MATLAB、Octave
  14. springDatasolr 排序
  15. python中的异常处理常用方法
  16. windows下使用LibreOffice的体验
  17. BP神经网络的理论理论常识
  18. 为什么Sql Server的查询有时候第一次执行很慢,第二次,第三次执行就变快了
  19. 在Linux中将脚本做成系统服务
  20. 揭秘uc浏览器一

热门文章

  1. eclipse 404以及tomcat failed to start错误
  2. 如何让网页打开就运行JS代码,不用onclick
  3. (转)union和union all的区别
  4. Android AsyncTask学习
  5. Base64加密解密
  6. 跳转UICollectionViewController报Could not load NIB in bundle解决办法
  7. 阐述Lambada表达式
  8. unity——使用角色控制器组件+射线移动
  9. C#设置按钮三态背景图片
  10. Altium Designer 生成 Mach3 G代码的程序