线程:CountDownLatch同步工具
一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
类似计数器,当计数器的值为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同步工具相关推荐
- 常用并发工具类(锁和线程间通信工具类)
常用并发工具类总结 JUC 下的常用并发工具类(锁和线程间通信工具类),主要包括 ReentrantLock.ReentrantReadWriteLock.CountDownLatch.CyclicB ...
- Java 并发编程之同步工具类闭锁 CountDownLatch
Java 同步工具类CountDownLatch相当于一个计数器,假设一个方法,等待一个计数器从初始值5变为0,每使用一次countdown()方法,计数器的值减少1,当计数器的值为0时,触发某件事. ...
- (三)线程同步工具集_1---控制线程并发访问一个资源
2019独角兽企业重金招聘Python工程师标准>>> 线程同步工具集 在前面了解了线程的同步机制,临界区等,了解了线程的两种基本的同步机制: synchronized关键字: Lo ...
- 16_张孝祥_多线程_同步工具CyclicBarrier与CountDownLatch
转载: CyclicBarrier的用法 CountDownLatch(倒计时计数器)使用说明 参考: CyclicBarrier和CountDownLatch区别 CyclicBarrier Cyc ...
- Java多线程拾遗(五) 使用CountDownLatch同步线程
CountDownLatch 是什么? 先看看CountDownLatch源码注释第一行给出的定义. 让一个或多个线程等待,直到在其他线程中执行的一组操作完成的同步辅助程序 我们在编码中很多时候需要多 ...
- JAVA同步工具类——CountDownLatch
闭锁 在学习CountDownLatch之前,让我们先了解一下闭锁的概念. 闭锁是一种同步工具类,可以延迟线程的进度直到其到达终止状态:闭锁的作用相当于一扇门,在闭锁到达结束状态之前,这扇门一直是关闭 ...
- 14、详解java同步工具类CountDownLatch
这篇文章主要讲解java中一个比较常用的同步工具类CountDownLatch,不管是在工作还是面试中都比较常见.我们将通过案例来进行讲解分析. 一.定义 CountDownLatch的作用很简单,就 ...
- 线程同步工具(七)在并发任务间交换数据
声明:本文是< Java 7 Concurrency Cookbook >的第三章, 作者: Javier Fernández González 译者:郑玉婷 在并发任务间交换数据 Jav ...
- ReentrantLock+线程池+同步+线程锁
1.并发编程三要素? 1)原子性 原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行. 2)可见性 可见性指多个线程操作一个共享变量时,其中一个线程对变量 ...
最新文章
- Linux命令:tar命令批量解压方法总结
- java通过反射,泛型将定义的对象与对象之间互转
- 第十六届全国大学智能车竞赛全国总决赛竞速组别成绩与奖项
- 【SignalR学习系列】4. SignalR广播程序
- 剑指Offer(Java实现)把二叉树打印成多行
- CentOS 7安装Zabbix 3.4
- 程序员小测试:保守派 vs 自由派
- 【LeetCode笔记】300. 最长递增子序列(Java、动态规划、二分法、贪心)
- 中国工业企业数据库(1998-2014年)
- 如何养成良好的生活习惯 — 饮食、睡眠、运动
- 常用应用服务器——Tomcat的常用小技巧
- 基于CDD修复模型的图像修复算法
- 了解计算机软件系统教学设计,认识计算机》教学设计
- 每周读书#11 - 等一朵花开
- aspose-slides-22.5-jdk16
- 电脑和手机好用的播放器
- 通讯软件002——快速使用modscan进行modbus调试
- python turtle如何写字_python的turtle库可以利用代码写字吗?
- TX2安装realsense SDK和librealsense
- 选择屏幕abap开发
热门文章
- LeetCode每日一题 977. 有序数组的平方
- 双指针 - 四数之和
- HDU Problem - 2732 Leapin' Lizards(最大流,拆点建边)
- powerdesigner 同步mysql 报错_Win7下PowerDesigner连接mysql,反向工程,导出差异脚本,或直接同步...
- Python报错TypeError: ‘User‘ object is not iterable
- html5_0_文章_分级_分段
- Jupyter notebook快捷操作
- pwntools所带的函数使用方法
- http协议 php,PHP中的http协议
- mysql数据库入门第二张试卷_2016计算机二级《MySQL数据库》练习题与答案