CountDownLatch 计数器门闩
来源:互联网 发布:能弹琴的软件 编辑:程序博客网 时间:2024/04/28 13:47
我只能说中华文化博大精深,最开始的时候还是不认识闩字的,百度了一下,
闩[shuān]。
从型上分析,就是门上插把棍子,锁住什么东西。
CountDownLatch 就是把线程关起来,不许出来,得先干完活。
CountDownLatch 计数器门闩/** * CountDownLatch 计数器门闩 * 该任务是如果完成了5个任务,那么才去执行发工资的事情 * * @author beiyaoyao */public class CountDownLatchDemo implements Runnable { //告知CountDownLatch 需要完成5件事情 static final CountDownLatch countDownLatch = new CountDownLatch(5); static final CountDownLatchDemo countDownLatchDemo = new CountDownLatchDemo(); @Override public void run() { try { //模拟任务的发生 Thread.sleep(1000); System.out.println(Thread.currentThread().getId()+ " thread misson complete"); //告知CountDownLatch.await();完成了一件,知道全部完成。 countDownLatch.countDown(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) throws InterruptedException { ExecutorService exec = Executors.newFixedThreadPool(5); for(int i = 0 ; i < 5 ; i ++){ exec.submit(countDownLatchDemo); } //等待检查是否完成 countDownLatch.await(); //执行 System.out.println("run"); exec.shutdown(); }}
输出结果
10 thread misson complete
9 thread misson complete
8 thread misson complete
11 thread misson complete
12 thread misson complete
run
如果我们对线程不加以处理
public class CountDownLatchDemoNo implements Runnable { static final CountDownLatchDemoNo countDownLatchDemo = new CountDownLatchDemoNo(); @Override public void run() { System.out.println(Thread.currentThread().getId()+ " thread misson complete"); } public static void main(String[] args) throws InterruptedException { ExecutorService exec = Executors.newFixedThreadPool(5); for(int i = 0 ; i < 5 ; i ++){ exec.submit(countDownLatchDemo); } //执行 System.out.println("run"); exec.shutdown(); }}
执行结果
8 thread misson complete
10 thread misson complete
9 thread misson complete
11 thread misson complete
run
12 thread misson complete
run的输出有可能会在任何一个任务执行完或者没有执行任何一个任务的时候执行。
0 0
- CountDownLatch 计数器门闩
- 多线程计数器锁存器---CountDownLatch
- CountDownLatch:倒计时计数器
- 同步倒数计数器CountDownlatch
- Java中的计数器CountDownLatch
- java CountDownLatch 同步计数器
- CountDownLatch同步计数器
- 黑马程序员--其它同步工具类 CyclicBarrier (循环障碍) CountdownLatch (倒数门闩) Exchange (交换)
- [Muduo网络库源码分析] (3) base/CountDownLatch.cc_h_“倒计时门闩”同步
- CountDownLatch相关线程倒计时计数器
- CountDownLatch的使用(倒计时计数器)
- CountDownLatch的使用(倒计时计数器)
- Java多线程--同步计数器CountDownLatch
- CountDownLatch 类是一个 同步计数器
- 多线程计数器之CountDownLatch和join
- 线程池控制输出CountDownLatch同步计数器
- 多线程计数器之CountDownLatch和join
- 倒计数器:CountDownLatch | 循环栅栏:CyclicBarrier
- 查看表结构
- 递归删除资源树
- bzoj4816: [Sdoi2017]数字表格
- keras程序—最简单CNN实现
- appDomain詳解
- CountDownLatch 计数器门闩
- git每次pull/push到gitHub都要输入密码的解决方案
- 同一段C++代码在win下和linux下同时编译时产生的头文件包含问题及解决
- mybatis自动扫包,扫描不到jar包的解决方法
- Pots (广搜+回溯)
- MySQL分页查询和模糊查询中的小细节
- 链表的基本操作
- 2017FPGA基本任务计数器仿真实验
- MAVEN 阿里云仓库