Java多线程--CountDownLatch的用法(有实例)

这篇文章详细介绍了Java中的CountDownLatch类如何用于控制多个线程同步执行,通过实例展示如何在主线程等待子线程完成后继续流程。通过CountDownLatch的await方法和countDown方法,实现灵活的异步协作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文网址:Java多线程--CountDownLatch的用法(有实例)_IT利刃出鞘的博客-CSDN博客

简介

说明

本文用示例介绍CountDownLatch的用法。

CountDownLatch也属于JUC。线程可以使用await()进行等待,多线程进行递减计数,等到计数到0的时候等待即不再阻塞,从而向下执行。

在日常开发中经常会遇到需要在主线程中开启多个线程去并行执行任务,并且主线程需要等待所有子线程执行完毕后再进行汇总的场景。

概述        

在CountDownLatch出现之前一般都使用线程的join()方法来实现这一点,但是join方法不够灵活,两者的对比如下:

CountDonLatchjoin()
是否适用于线程池适用。

不适用。

使用线程池一般是直接添加Runable到线程池,这时没有办法再调用线程的join方法了。

调用时机允许子线程运行完毕或者在运行中递减计数。只能等待线程运行完毕。

方法

方法名解释
void countDown()计数器减1
long getCount()返回当前计数值
void await()当前线程阻塞,直到该计数器为0后才能继续执行
boolean await(long timeout, TimeUnit unit)与上述await()类似,只不过可以设置等待时间,如果在规定时间内计数器的值依然大于0,则继续执行

实例

简介

描述:创建两个线程,主流程里等待这两个线程都结束,才往下进行。

上边是文章的部分内容,为便于维护,全文已转移到此网址:Java多线程-CountDownLatch的用法(有实例) - 自学精灵

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT利刃出鞘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值