网站首页 > 博客文章 正文
CyclicBarrier简单使用
- 描述: CyclicBarrier允许一组线程全部等待彼此达到共同屏障点的同步辅助。 循环阻塞在涉及固定大小的线程方的程序中很有用,这些线程必须偶尔等待彼此。 屏障被称为循环 ,因为它可以在等待的线程被释放之后重新使用。
- 用法:5个人开会,只有5个人都到达会议室后,才能开会,然后发表讲话。
public static void main(String[] args) throws InterruptedException {
// 所有人到齐,开会
CyclicBarrier cyclicBarrier = new CyclicBarrier(5, () -> {
System.out.println("所有人到齐,开会!");
});
for (int i = 1; i <= 5; i++) {
new Thread(() -> {
try {
System.out.println("第"+Thread.currentThread().getName() + "个人到达会议室");
cyclicBarrier.await();//等待其他人到达
} catch (InterruptedException e) {
e.printStackTrace();
} catch (BrokenBarrierException e) {
e.printStackTrace();
}
System.out.println("第"+Thread.currentThread().getName() + "个人发表讲话");
}, String.valueOf(i)).start();
}
}
CountDownLatch与CyclicBarrier的区别
- CountDownLatch主要是实现了1个或N个线程需要等待其他线程完成某项操作之后才能继续往下执行操作,描述的是1个线程或N个线程等待其他线程的关系。
- CyclicBarrier主要是实现了多个线程之间相互等待,直到所有的线程都满足了条件之后各自才能继续执行后续的操作,描述的多个线程内部相互等待的关系。
- CountDownLatch是一次性的,而CyclicBarrier则可以被重置而重复使用。
- 上一篇: 二进制部署k8s集群
- 下一篇: CyclicBarrier原来是这样的
猜你喜欢
- 2025-01-01 第一篇|Spark概览
- 2025-01-01 蔚来真题和答案,主打一个简单?
- 2025-01-01 ABB工业机器人编程指令函数程序数据等
- 2025-01-01 eNodeB启动和RRC连接建立
- 2025-01-01 硬盘SMART检测参数详解
- 2025-01-01 富集分析,看完这篇就够
- 2025-01-01 18个并发场景的设计模式详解,有没有你的盲区
- 2025-01-01 并发编程常见问题
- 2025-01-01 阿里架构师亲自梳理的:多线程与高并发知识点
- 2025-01-01 应读者要求讲讲 DMA
你 发表评论:
欢迎- 最近发表
-
- 告别频繁登录!Nuxt3 + TS + Vue3实战:双Token无感刷新方案全解析
- SpringBoot实现单点登录(SSO)的4种方案
- 随机密聊 匿名聊天室程序源码(随机匿名聊天在线)
- SpringBoot大文件上传卡死?分块切割术搞定GB级传输,速度飙升!
- Java 微服务从源码实战开始 | Gitee 项目推荐
- 轻量级埋点sdk搭建,便捷更全面(埋点sdk是什么)
- Spring Boot 实现文件秒传功能(springboot上传文件到指定文件夹)
- 项目中不用redis分布式锁,怎么防止用户重复提交?
- SpringBoot项目日志打印traceId生成
- 如何实现PC端网站扫码登录操作?(网页 扫码)
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- 系统设计图 (58)
- powershellfor (73)
- messagesource (71)
- plsql64位 (73)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)