怎么使用CountDownLatch
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要介绍"怎么使用CountDownLatch",在日常操作中,相信很多人在怎么使用CountDownLatch问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎
千家信息网最后更新 2025年12月03日怎么使用CountDownLatch
这篇文章主要介绍"怎么使用CountDownLatch",在日常操作中,相信很多人在怎么使用CountDownLatch问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么使用CountDownLatch"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
CountDownLatch是一个非常实用的多线程控制工具类。常用的就下面几个方法:
CountDownLatch(int count) //实例化一个倒计数器,count指定计数个数countDown() // 计数减一await() //等待,当计数减到0时,所有线程并行执行
CountDownLatch在我工作的多个场景被使用,算是用的很频繁的了,比如我司API接口要求响应时间在200ms以内,但是如果一个接口内部依赖多个三方/外部服务,那串行调用接口的RT必然很久,所以个人用的最多的是接口RT优化场景,内部服务并行调用。
对于倒计数器,一种典型的场景就是火箭发射。在火箭发射前,为了保证万无一失,往往还要进行各项设备、仪器的检测。只有等到所有的检查完毕后,引擎才能点火。那么在检测环节当然是多个检测项可以同时进行的。代码实现:
/** * @Author: 王琦1124602935@qq.com * @Date: 2019-5-4 0004 9:43 * @Description: 倒计时器示例:火箭发射 */public class CountDownLatchDemo implements Runnable{ static final CountDownLatch latch = new CountDownLatch(10); static final CountDownLatchDemo demo = new CountDownLatchDemo(); @Override public void run() { // 模拟检查任务 try { Thread.sleep(new Random().nextInt(10) * 1000); System.out.println("check complete"); //计数减一 latch.countDown(); } catch (InterruptedException e) { e.printStackTrace(); } } public static void main(String[] args) throws InterruptedException { ExecutorService exec = Executors.newFixedThreadPool(10); for (int i=0; i<10; i++){ exec.submit(demo); } // 等待检查 latch.await(); // 发射火箭 System.out.println("Fire!"); // 关闭线程池 exec.shutdown(); }}
上述代码中我们先生成了一个CountDownLatch实例。计数数量为10,这表示需要有10个线程来完成任务,等待在CountDownLatch上的线程才能继续执行。latch.countDown();方法作用是通知CountDownLatch有一个线程已经准备完毕,倒计数器可以减一了。latch.await()方法要求主线程等待所有10个检查任务全部准备好才一起并行执行。
到此,关于"怎么使用CountDownLatch"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
线程
接口
方法
火箭
发射
学习
检查
任务
场景
多个
计数器
检测
实用
代码
实例
更多
准备
帮助
服务
频繁
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全行业薪资
公众号服务器怎么改回来
中兴软件开发好跳槽吗
挖财网络技术有限公司纠纷
光辉互动网络技术有限公司电话
识别车牌是什么神经网络技术
服务器与icloud连接超时
第四届网络安全(中国)论坛
山西网络技术咨询销售电话
政府项目软件开发
软件开发贵
中国软件开发有限公司招聘
宝山区互联网软件开发大概费用
常见的学术文献数据库及各自特点
sql 获取表数据库名
手机怎么进入云服务器桌面
java发布到本地服务器
法律禁止的危害网络安全的行为
GaIe数据库是哪里的
dbca查看数据库
ip服务器 模拟
一般能接触的系统软件开发
国家一级协会网络安全证书有用吗
以软件开发商聚集地为特色
数据库至少有两种文件
国际的网络安全问题
软件开发贵
c 获取缓存数据库
未转变者服务器怎么玩
江苏极光网络技术有限责任公司