李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
countDownLatch简介
Leefs
2020-02-27 PM
1251℃
0条
# countDownLatch简介 ### 前言 countDownLatch是在java1.5被引入,存在于java.util.cucurrent包下。 ### 一、概念 + **countDownLatch**:类使一个线程等待其他线程各自执行完毕后再执行。 + **countDownLatch**是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程就可以恢复工作了。 ### 二、源码 + 1.countDownLatch类中只提供了一个构造器: ```java //参数count为计数值 public CountDownLatch(int count) { }; ``` + 2.类中有三个方法是最重要的: ```java //调用await()方法的线程会被挂起,它会等待直到count值为0才继续执行 public void await() throws InterruptedException { }; //和await()类似,只不过等待一定的时间后count值还没变为0的话就会继续执行 public boolean await(long timeout, TimeUnit unit) throws InterruptedException { }; //将count值减1 public void countDown() { }; ``` ### 三、代码示例 ```java public class CountDownLatchDemo { public static void main(String[] args) throws InterruptedException { CountDownLatch countDownLatch = new CountDownLatch(6); for(int i=1;i<=6;i++){ new Thread(()->{ System.out.println(Thread.currentThread().getName()+"\t 上完自习,离开教室"); countDownLatch.countDown(); },String.valueOf(i)).start(); } countDownLatch.await(); System.out.println(Thread.currentThread().getName()+"\t ********班长最后关门走人!"); } } ``` **运行结果** ```java 1 上完自习,离开教室 2 上完自习,离开教室 3 上完自习,离开教室 4 上完自习,离开教室 5 上完自习,离开教室 6 上完自习,离开教室 main ********班长最后关门走人! ``` *附:[参考文章链接](https://www.jianshu.com/p/e233bb37d2e6)*
标签:
并发编程
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://www.lilinchao.com/archives/650.html
上一篇
Java锁--公平和非公平锁
下一篇
CyclicBarrier和Semaphore简介
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
43
标签云
SpringBoot
链表
Azkaban
Filter
微服务
Java编程思想
JavaWEB项目搭建
Linux
查找
Jquery
容器深入研究
Hadoop
Typora
MyBatis-Plus
Yarn
队列
Redis
Kafka
JavaSE
数据结构
Eclipse
Python
排序
SQL练习题
JavaWeb
散列
JavaScript
Docker
MyBatis
Scala
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞