|
|
51CTO旗下网站
|
|
移动端

1.7.10 CountDownLatch计数器

《Java多线程与Socket:实战微服务框架》第1章多线程基础,本书尽量采用简要和通俗易懂的方式来介绍多线程知识。本节为大家介绍CountDownLatch计数器。

作者:庞永华来源:电子工业出版社|2019-03-26 16:02

【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》

1.7.10 CountDownLatch计数器

java.util.concurrent.CountDownLatch非常简单,它相当于一个倒序计数器,用来协调多个线程的执行。多个线程通过调用它们所共享的计数器(CountDownLatch对象)的countDown()方法来让计数器减1。可以通过CountDownLatch对象的await方法来阻塞当前线程,直到计数器的值变为0。示例如下:

  1. public static void main(String[] args) {  
  2. int count = 200;  
  3. // 初始化一个 200 大小的计数器  
  4. final CountDownLatch cdl = new CountDownLatch(count);  
  5. ExecutorService es = Executors.newFixedThreadPool(5);  
  6. for (int i = 0; i < count; i++) {  
  7. es.execute(new Runnable() {  
  8. @Override  
  9. public void run() {  
  10. try {  
  11. System.out.println(cdl.getCount());  
  12. } finally {  
  13. cdl.countDown();// 计数器减1  
  14. }  
  15. }  
  16. });  
  17. }  
  18. try {  
  19. // 阻塞当前线程,直到计数器减为0,超时限制为10秒  
  20. cdl.await(10L, TimeUnit.SECONDS);  
  21. } catch (InterruptedException e) {  
  22. e.printStackTrace();  
  23. }  
  24. es.shutdown();  
  25. System.out.println(cdl.getCount());  


喜欢的朋友可以加入官方的读书群

51CTO读书频道二维码


51CTO读书会第9群:808517103

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

Jenkins Pipeline可持续化集成

Jenkins Pipeline可持续化集成

优化运维流水线
共3章 | youerning

198人订阅学习

笑熬浆糊之职场那些事

笑熬浆糊之职场那些事

IT人的职场心法
共22章 | Bear_Boss

79人订阅学习

Redis运维秘籍

Redis运维秘籍

运维标配技术
共15章 | one叶孤舟

199人订阅学习

读 书 +更多

网络管理员考试全真模拟试题与解析

本书是按照全国计算机技术与软件专业技术资格(水平)考试《网络管理员考试大纲》的要求,参照《网络管理员教程》及近年来考试试题编写的。...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客