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

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

 1 package ch03;
 2
 3 import java.util.Random;
 4 import java.util.concurrent.CountDownLatch;
 5 import java.util.concurrent.ExecutorService;
 6 import java.util.concurrent.Executors;
 7
 8 public class CountDownLatchTest {
 9
10     public static void main(String[] args) {
11         ExecutorService threadPool = Executors.newCachedThreadPool();
12         //初始值设置为2
13         final CountDownLatch latch = new CountDownLatch(2);
14         for(int i=0; i<2; i++){
15             Runnable runnable = new Runnable() {
16
17                 @Override
18                 public void run() {
19                     try {
20                         Thread.sleep(new Random().nextInt(6000));
21                         System.out.println("子线程执行。。。");
22                         //计数器自减
23                         latch.countDown();
24                     } catch (Exception e) {
25                         e.printStackTrace();
26                     }
27                 }
28             };
29             threadPool.execute(runnable);
30         }
31
32         try {
33             //等待计数器自减到0,然后再往下执行。
34             latch.await();
35         } catch (InterruptedException e) {
36             e.printStackTrace();
37         }
38         System.out.println("主线程....");
39     }
40
41 }

转载于:https://www.cnblogs.com/myCodingSky/p/3703918.html

线程:CountDownLatch同步工具相关推荐

  1. 常用并发工具类(锁和线程间通信工具类)

    常用并发工具类总结 JUC 下的常用并发工具类(锁和线程间通信工具类),主要包括 ReentrantLock.ReentrantReadWriteLock.CountDownLatch.CyclicB ...

  2. Java 并发编程之同步工具类闭锁 CountDownLatch

    Java 同步工具类CountDownLatch相当于一个计数器,假设一个方法,等待一个计数器从初始值5变为0,每使用一次countdown()方法,计数器的值减少1,当计数器的值为0时,触发某件事. ...

  3. (三)线程同步工具集_1---控制线程并发访问一个资源

    2019独角兽企业重金招聘Python工程师标准>>> 线程同步工具集 在前面了解了线程的同步机制,临界区等,了解了线程的两种基本的同步机制: synchronized关键字: Lo ...

  4. 16_张孝祥_多线程_同步工具CyclicBarrier与CountDownLatch

    转载: CyclicBarrier的用法 CountDownLatch(倒计时计数器)使用说明 参考: CyclicBarrier和CountDownLatch区别 CyclicBarrier Cyc ...

  5. Java多线程拾遗(五) 使用CountDownLatch同步线程

    CountDownLatch 是什么? 先看看CountDownLatch源码注释第一行给出的定义. 让一个或多个线程等待,直到在其他线程中执行的一组操作完成的同步辅助程序 我们在编码中很多时候需要多 ...

  6. JAVA同步工具类——CountDownLatch

    闭锁 在学习CountDownLatch之前,让我们先了解一下闭锁的概念. 闭锁是一种同步工具类,可以延迟线程的进度直到其到达终止状态:闭锁的作用相当于一扇门,在闭锁到达结束状态之前,这扇门一直是关闭 ...

  7. 14、详解java同步工具类CountDownLatch

    这篇文章主要讲解java中一个比较常用的同步工具类CountDownLatch,不管是在工作还是面试中都比较常见.我们将通过案例来进行讲解分析. 一.定义 CountDownLatch的作用很简单,就 ...

  8. 线程同步工具(七)在并发任务间交换数据

    声明:本文是< Java 7 Concurrency Cookbook >的第三章, 作者: Javier Fernández González 译者:郑玉婷 在并发任务间交换数据 Jav ...

  9. ReentrantLock+线程池+同步+线程锁

    1.并发编程三要素? 1)原子性 原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行. 2)可见性 可见性指多个线程操作一个共享变量时,其中一个线程对变量 ...

最新文章

  1. Linux命令:tar命令批量解压方法总结
  2. java通过反射,泛型将定义的对象与对象之间互转
  3. 第十六届全国大学智能车竞赛全国总决赛竞速组别成绩与奖项
  4. 【SignalR学习系列】4. SignalR广播程序
  5. 剑指Offer(Java实现)把二叉树打印成多行
  6. CentOS 7安装Zabbix 3.4
  7. 程序员小测试:保守派 vs 自由派
  8. 【LeetCode笔记】300. 最长递增子序列(Java、动态规划、二分法、贪心)
  9. 中国工业企业数据库(1998-2014年)
  10. 如何养成良好的生活习惯 — 饮食、睡眠、运动
  11. 常用应用服务器——Tomcat的常用小技巧
  12. 基于CDD修复模型的图像修复算法
  13. 了解计算机软件系统教学设计,认识计算机》教学设计
  14. 每周读书#11 - 等一朵花开
  15. aspose-slides-22.5-jdk16
  16. 电脑和手机好用的播放器
  17. 通讯软件002——快速使用modscan进行modbus调试
  18. python turtle如何写字_python的turtle库可以利用代码写字吗?
  19. TX2安装realsense SDK和librealsense
  20. 选择屏幕abap开发

热门文章

  1. LeetCode每日一题 977. 有序数组的平方
  2. 双指针 - 四数之和
  3. HDU Problem - 2732 Leapin' Lizards(最大流,拆点建边)
  4. powerdesigner 同步mysql 报错_Win7下PowerDesigner连接mysql,反向工程,导出差异脚本,或直接同步...
  5. Python报错TypeError: ‘User‘ object is not iterable
  6. html5_0_文章_分级_分段
  7. Jupyter notebook快捷操作
  8. pwntools所带的函数使用方法
  9. http协议 php,PHP中的http协议
  10. mysql数据库入门第二张试卷_2016计算机二级《MySQL数据库》练习题与答案