package com.zhangxueliang.day_20191108;import java.util.concurrent.CountDownLatch;/*** 计算多线程的运行时间* @author Administrator**/
public class CountDownLatchDemo {public static void main(String[] args) {CountDownLatch countDownLatch = new CountDownLatch(5);LatchDemo latchDemo = new LatchDemo(countDownLatch);long begin = System.currentTimeMillis();for (int i = 0; i < 5; i++) {new Thread(latchDemo).start();}try {countDownLatch.await();} catch (InterruptedException e) {e.printStackTrace();}long end = System.currentTimeMillis();System.out.println("多线程运行共耗时:"+(end-begin)+"毫秒");}}class LatchDemo implements Runnable{private CountDownLatch countDownLatch;public LatchDemo() {super();}public LatchDemo(CountDownLatch countDownLatch) {super();this.countDownLatch = countDownLatch;}@Overridepublic void run() {try{for (int i = 0; i < 50000; i++) {if(i%2==0){System.out.println(i);}}}finally{countDownLatch.countDown();}}}

Java并发编程之CountDownLatch(闭锁)使用详解相关推荐

  1. Java并发编程之CountDownLatch/CyclicBarrierDemo/SemaphoreDemo详解

    CountDownLatch详解 什么是CountDownLatch? 代码说明一 :班长锁门 代码说明二:秦国统一六国 什么是CyclicBarrierDemo? 代码说明一:集齐7个龙珠,召唤神龙 ...

  2. Java并发编程之LinkedTransferQueue阻塞队列详解

    简介 LinkedTransferQueue是一个由链表结构组成的无界阻塞TransferQueue队列.相对于其他阻塞队列,LinkedTransferQueue多了tryTransfer和tran ...

  3. Java并发编程之CountDownLatch闭锁

    CountDownLatch 典型应用场景:主线程启动多个子线程同时执行业务逻辑,所有子线程都执行完毕,再唤醒主线程继续执行. 例子: public class CountDownLatchTest ...

  4. java并发编程之Thread.sleep方法详解

    Thread.sleep方法的作用: 使当前线程暂停执行一段时间,交出cpu的执行时间片,并且在暂停期间不会参与cpu时间片的获取.直到等待时间结束恢复到就绪状态,是否执行还要看OS的调度,或者在这段 ...

  5. java并发编程之thread.join()方法详解

    thread.join()方法的作用:保证线程的执行结果的可见性.原理是通过阻塞主线程实现的. 代码Demo如下: public class ThreadJoinDemo {public static ...

  6. Java网络编程之Socket和ServerSocket详解

    Socket Socket是实现客户端套接字的类,套接字是两台计算机之间进行通信的端点. Socket的实际工作由SocketImpl类的实例执行 .通过更改用于创建套接字实现的套接字工厂,应用程序可 ...

  7. Java并发编程之CountDownLatch源码解析

    一.导语 最近在学习并发编程原理,所以准备整理一下自己学到的知识,先写一篇CountDownLatch的源码分析,之后希望可以慢慢写完整个并发编程. 二.什么是CountDownLatch Count ...

  8. Java并发编程之CountDownLatch、CyclicBarrier和Semaphore

    前言 本文为对CountDownLatch.CyclicBarrier.Semaphore的整理使用 CountDownLatch CountDownLatch类位于java.util.concurr ...

  9. Java并发编程之CountDownLatch

    目录 一.概述 二.CountDownLatch与join的异同 三.源码解析 3.1.await方法源码解析 3.2.downCount方法源码解析 一.概述 作用:可以用来确保某些活动直到其他活动 ...

最新文章

  1. Convert.ToInt32
  2. Vue.js 表单输入绑定
  3. 周志华机器学习课后习题解析【第二章】
  4. 深入浅出MySQL事务处理和锁机制
  5. 20应用统计考研复试要点(part31)--简答题
  6. Flash--元件和实例
  7. python自动处理多个txt文件_怎么用python去实现几个文件中内容的并行处理
  8. 霍夫变换提取圆心坐标,并拟合直线
  9. linux 没有可用的缓冲区空间不足,由于系统缓冲区空间不足或队列已满,不能执...
  10. 转载TortoiseSVN的使用详解2(http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html)
  11. 【数据结构-堆栈(顺序存储)GO语言实现】
  12. k8s中配置namespace的最小和最大内存
  13. 探针台选型的有哪些注意事项
  14. 教你如何提取图片中的文字?
  15. 【西瓜书笔记】补充1:logistic回归及其损失函数,梯度下降推导
  16. vue3 setup 语法糖的项目实战用法
  17. 各大银行ATM跨行取款收费一览表
  18. 调用阿里云发送短信验证码的工具类
  19. linux c 文件锁应用详解汇总
  20. openjweb官方网站地址改为http://www.openjweb.com

热门文章

  1. PyCaret:又一个神仙ML库
  2. 0128互联网新闻 | 微信小游戏新增“文化互动”类目;钉钉将上线企业拜年红包...
  3. 互联网1分钟 |1129
  4. group by 练习
  5. 搞懂分布式技术8:负载均衡原理剖析
  6. mysql 数据库学习(触发器)
  7. react-native 单位换算(px,pt,dp,ppi)
  8. 部分博客中的代码已放到了GitHub上,欢迎大家下载阅读!
  9. [C++] STACK_Principle
  10. PMBOK项目管理思维导图梳理