当前位置:网站首页>面试官:多个线程执行完毕后,才执行另一个线程,该怎么做?
面试官:多个线程执行完毕后,才执行另一个线程,该怎么做?
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
边栏推荐
猜你喜欢
LeetCode·每日一题·1403.非递增顺序的最小子序列·贪心
张乐:研发效能的黄金三角及需求与敏捷协作领域的实践
"Research Report on the Development of Global Unicorn Enterprises in the First Half of 2022" released - DEMO WORLD World Innovation Summit ended successfully
吴恩达机器学习[13]-支持向量机
In action: 10 ways to implement delayed tasks, with code!
【Idea设置运行参数无效】可能是...
字节API鉴权方法
第三章 Scala运算符
How to monitor code cyclomatic complexity by refactoring indicators
Many merchants mall system function and dismantling 24 - ping the strength distribution of members
随机推荐
What is an artifact library in a DevOps platform?What's the use?
NFT盲盒挖矿系统dapp开发NFT链游搭建
现代 ABAP 编程语言中的正则表达式
第三章 Scala运算符
平稳发展 | 西欧地区手游玩家的数据和洞察
【Gopher 学个函数】边学边练,简单为 Go 上个分
屏幕分辨率兼容性
ITSM软件与工单系统的区别是什么?
一文解答DevOps平台的制品库是什么
《电磁兼容防护EMC》学习笔记
No server is required, teach you to get real-time health code recognition with only 30 lines of code
云存储硬核技术内幕——(10)
【Es6中的promise】
云存储硬核技术内幕——小结(上)
保证通信的机制有哪些
GPS卫星同步时钟,NTP网络同步时钟,北斗时钟服务器(京准)
An article to answer what is the product library of the DevOps platform
Check which user permissions are assigned to each database, is there an interface for this?
Difference between GET and POST requests
学 Go,最常用的技能是什么?打日志