当前位置:网站首页>面试官:多个线程执行完毕后,才执行另一个线程,该怎么做?
面试官:多个线程执行完毕后,才执行另一个线程,该怎么做?
2022-08-04 15:59:00 【51CTO】

CountDownLatch
去掉try catch版本
先来演示一下用法,可以看到所有子线程都执行完毕才会执行主线程。实现这个功能主要靠的是CountDownLatch的2个方法await()和countDown()。
new一个CountDownLatch时会传一个计数器的值,上面的例子为3。调用await()方法时判断计数是否为0,如果不为0则呈等待状态。其他线程可以调用countDown()方法将计数减1,当计数减到位0时,则呈等待的线程继续执行。
CyclicBarrier
去掉try catch版本
CountDownLatch的计数器只能使用一次,而CyclicBarrier的计数器可以使用reset()方法重置。挺简单的就不再演示。因为这2个工具类都用到了AQS,而AQS的原理很长,因此在本文就不介绍AQS的实现了
CompletableFuture
去掉try catch版本
参考博客
https://www.jianshu.com/p/2808c93fef12
边栏推荐
猜你喜欢

录音文件识别

可视化大屏丑?这篇文章教你如何做美观大屏!

项目里的各种配置,你都了解吗?

How to monitor code cyclomatic complexity by refactoring indicators

Projector reached the party benefits 】 【 beginners entry - brightness projection and curtain selection - from entry to the master

It took half a month to finally make a collection of high-frequency interview questions of first-tier manufacturers

ICDE‘22推荐系统论文之Research篇

Typora收费?搭建VS Code MarkDown写作环境

Request method ‘POST‘ not supported。 Failed to load resource: net::ERR_FAILED

【Pick-in】Advertising-information flow cross-domain CTR estimation (to be updated)
随机推荐
Does DMS have an interface to get the list of databases under each instance?
西安纵横资讯×JNPF:适配中国企业特色,全面集成费用管控体系
【TA-霜狼_may-《百人计划》】美术2.7 Metallic 与 Speculer流程
云存储硬核技术内幕——(11) 女子会所的秘密
成功 解决 @keyup.enter=“search()“ 在el-input 组件中不生效的问题
实战:10 种实现延迟任务的方法,附代码!
JVM Tuning-GC Fundamentals and Tuning Key Analysis
攻防视角下,初创企业安全实战经验分享
使用百度EasyDL实现森林火灾预警识别
LeetCode·每日一题·1403.非递增顺序的最小子序列·贪心
HyperBDR云容灾深度解析一:云原生跨平台容灾,让数据流转更灵活
Go 事,如何成为一个Gopher ,并在7天找到 Go 语言相关工作,第1篇
Redis持久化操作
MySQL当前读、快照读、MVCC
Go 事,Gopher 要学的数字类型,变量,常量,运算符 ,第2篇
PHP 图片转PDF
为什么Redis默认序列化器处理之后的key会带有乱码?
Beginner crawler notes (collecting data)
ITSM软件与工单系统的区别是什么?
学 Go,最常用的技能是什么?打日志