CountDownLatch

CountDownLatch是Java并发中常用的一个工具类,通常称为锁存器latch,作用为同步一个或多个任务,强制等待指定任务执行完成。即多线程中控制一个或多个线程去等待其他线程完成操作。

1. 方法API

CountDownLatch提供一个有参构造方法和四个常用方法

方法 说明
CountDownLatch(int count) 有参构造器方法,count为锁存器计数
await() 使当前线程进行同步队列等待,直到锁存器latch的值为0当前线程才会被唤醒,除非当前线程被中断
await(long timeout, TimeUnit unit) 带超时时间的awaittimeout 等待时间,unit时间的单位。若超过等待时间不管latch是否为0都会唤醒当前线程
countDown() 使latch的值减1,如果减到了0,则会唤醒所有等待在这个latch上的线程。
getCount() 获取latch的值

2. 例子

Java并发——CountDownLatch相关推荐

  1. java 并发统计_java并发编程|CountDownLatch计数器

    0x01,CountDownLatch介绍 CountDownLatch是一个计数器,作为java并发编程中三个组件之一,这个组件的使用频率还是很多的.这里分享下自己画的java并发编程组件的图,后面 ...

  2. Java 并发专题 :闭锁 CountDownLatch 之一家人一起吃个饭

    最近一直整并发这块东西,顺便写点Java并发的例子,给大家做个分享,也强化下自己记忆. 每天起早贪黑的上班,父母每天也要上班,话说今天定了个饭店,一家人一起吃个饭,通知大家下班去饭店集合.假设:3个人 ...

  3. 死磕Java并发:J.U.C之并发工具类:CountDownLatch

    作者:chenssy 来源:Java技术驿站 在上篇博客中介绍了Java四大并发工具一直的CyclicBarrier,今天要介绍的CountDownLatch与CyclicBarrier有点儿相似. ...

  4. Java并发工具类(闭锁CountDownLatch)

    并发工具类系列: Java并发工具类(闭锁CountDownLatch) Java并发工具类(栅栏CyclicBarrier) Java并发工具类(信号量Semaphore) 闭锁是一种同步工具类,可 ...

  5. 【Java 并发编程】CountDownLatch 简介

    文章目录 I CountDownLatch 概念 II CountDownLatch 使用流程 III CountDownLatch API 简介 I CountDownLatch 概念 1. 概念 ...

  6. Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

    2019独角兽企业重金招聘Python工程师标准>>> Java并发编程:CountDownLatch.CyclicBarrier和Semaphore 在java 1.5中,提供了一 ...

  7. Java 并发编程系列之闭锁(CountDownLatch)

    在讲闭锁之前,我们先来思考一个问题:在多线程环境下,主线程打印一句话,如何保证这句话最后(其他线程全部执行完毕)打印? 博主目前可以想到的实现方式有两种.一种是通过 join() 方法实现,另一种就是 ...

  8. java并发中CountDownLatch的使用

    文章目录 主线程等待子线程全都结束之后再开始运行 等待所有线程都准备好再一起执行 停止CountdownLatch的await java并发中CountDownLatch的使用 在java并发中,控制 ...

  9. Java并发教程– CountDownLatch

    Java中的某些并发实用程序自然会比其他并发实用程序受到更多关注,因为它们可以解决通用问题而不是更具体的问题. 我们大多数人经常遇到执行程序服务和并发集合之类的事情. 其他实用程序不太常见,因此有时它 ...

最新文章

  1. 为何python不好找工作k-为何有人说Python不好找工作?
  2. Java初学者推荐学习书籍free下载
  3. Yum出错Error: Cannot find a valid baseurl for repo: addons
  4. 可重入锁是什么和demo
  5. 【Flink】Flink启动报错 BindException: Could not start rest endpoint on any port in port range 7089
  6. vue.js v-bind
  7. Myeclipse学习总结(1)——Myeclipse优化配置
  8. 联想服务器asp配置文件,.NET Core读取配置文件方式详细总结
  9. linux下各种文件设备,各硬件设备在Linux中的文件名
  10. 素数猜想对 c语言,1007 素数对猜想 (20 分)(C语言实现)
  11. 简单游戏代码_简单游戏
  12. STM32电机TB6612驱动
  13. SoundTouch音频处理库
  14. Firefly互动广告机解决方案
  15. 《大明王朝1566》台词摘录
  16. 利用鸿蒙开发新闻头条
  17. 如何在iPhone和iPad上使用Group FaceTime
  18. 期刊投稿状态_期刊投稿后的7种状态,如何应对
  19. 几何光学学习笔记(3)- 2.1光线经过单个折射球面的折射
  20. 苹果切换系统按哪个键_苹果全新笔记本 一体机正品专区

热门文章

  1. 02-JavaScript变量的强制类型转换
  2. Http和https请求过程
  3. Configure交叉编译
  4. 清除flashback日志
  5. ubuntu16.04登录界面输入用户名密码后又回到登录界面
  6. protobuf repeated数组类型的使用
  7. JSP实用教程-JSP语法
  8. 毕业论文中的“自动生成目录”设置(经验四)
  9. pyton--解决pycharm控制台中文显示unicode \xe6\x9d\x8e\xe7\x99\xbd\xe9\xa3\x9e码问题
  10. 0 基础 Java 自学之路(2022年最新版)