java 提交成绩并发,Java高并发系列之CountDownLatch使用案例

之前的这篇文章《Java高并发同步组件之CountDownLatch源码解析》介绍了CountDownLatch的源码分析,详细分析了其实现的原理,本文来一起看看怎么使用。

1、场景

假如现在有一场运动赛,比赛有三个选手,需要在所有选手完成比赛后宣布成绩,此时可以使用CountDownLatch来实现。

2、编码

首先创建一个类,类中定义一个CountDownLatch变量。然后在主线程调用CountDownDemo方法,向线程池提交三给任务,模拟三个选手进行比赛。然后主线程调用countDownLatch的await方法等待比赛结束。

66d43645ef907599c3fbeda98791bd71.png

下面来看看CountDownLatchDemo的代码。

ef6488d520de9383cdbdd91c75d7033d.png

上面这个方法,首先向线程池中提交三个任务,在每个任务中产生一个随机时间,可以当成比赛选手的耗时,每个任务休眠结束会输出该线程的比赛已结束,耗时多少。当所有线程执行完任务,主线程继续向下执行,也就是宣布比赛成绩。

3、测试结果

7f14e8e1272abd9b1e58e2697a7005fc.png

从输出结果可以看出,三个任务线程结束,主线程(可以当成裁判)宣布结果,程序继续向下执行。

总 结

CountDownLatch的使用可以想成一组运动员的比赛,不过其不能重复使用,也就是一组选手比赛结束,下一组选手就不能再用这个CountDownLatch变量了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值