当前位置:网站首页>面试官:多个线程执行完毕后,才执行另一个线程,该怎么做?
面试官:多个线程执行完毕后,才执行另一个线程,该怎么做?
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
边栏推荐
- UWP 转换 IBuffer 和其他类型
- Check which user permissions are assigned to each database, is there an interface for this?
- 如何实时监控销售数据?销售看板来帮你!
- GET 和 POST 请求的区别
- 云存储硬核技术内幕——(12) 皮洛士惨胜罗马军团
- 2022-08-04日报:量化细胞内的信息流:机器学习时代下的研究进展
- 屏幕分辨率兼容性
- 荐书 | 《大脑的奥秘:人人要懂的脑科学》:大脑里面有什么
- 云存储硬核技术内幕——(8) 只缘身在此山中
- The electromagnetic compatibility EMC protection study notes
猜你喜欢
【已解决】allure无法生成json文件和AttributeError: module ‘allure‘ has no attribute ‘severity_level‘
For循环控制
勒索软件的原理
字节API鉴权方法
74行代码实现浪漫的红心下落的动画效果
What is an artifact library in a DevOps platform?What's the use?
Redis的主从复制和集群
What is the difference between ITSM software and a work order system?
荐书 | 《大脑的奥秘:人人要懂的脑科学》:大脑里面有什么
实战:10 种实现延迟任务的方法,附代码!
随机推荐
Does DMS have an interface to get the list of databases under each instance?
不需要服务器,教你仅用30行代码搞定实时健康码识别
《电磁兼容防护EMC》学习笔记
成功 解决 @keyup.enter=“search()“ 在el-input 组件中不生效的问题
弄懂#if #ifdef #if defined
【Idea设置运行参数无效】可能是...
勒索软件的原理
JVM调优-GC基本原理和调优关键分析
Redis持久化操作
C# 写系统日志
Request method ‘POST‘ not supported。 Failed to load resource: net::ERR_FAILED
Go Go 简单的很,标准库之 fmt 包的一键入门
请问一下dms的跨阿里云账户 新增实例,是不是无法新增redis ?
What is the difference between ITSM software and a work order system?
Projector reached the party benefits 】 【 beginners entry - brightness projection and curtain selection - from entry to the master
录音文件识别
AAAI‘22 推荐系统论文梳理
软考 --- 软件工程(2)软件开发方法
什么是APS?APS+MES如何解决生产难题?
74行代码实现浪漫的红心下落的动画效果