java的CyclicBarrier使用
假设有一个场景:每个线程代表一个跑步运动员,当运动员都准备好后,才一起出发,只要有一个人没有准备好,大家都等待。
public class UseCyclicBarrier {static class Runner implements Runnable { private CyclicBarrier barrier; private String name; public Runner(CyclicBarrier barrier, String name) { this.barrier = barrier; this.name = name; } @Override public void run() { try { Thread.sleep(1000 * (new Random()).nextInt(5)); System.out.println(name + " 准备OK."); barrier.await(); } catch (InterruptedException e) { e.printStackTrace(); } catch (BrokenBarrierException e) { e.printStackTrace(); } System.out.println(name + " Go!!"); } }public static void main(String[] args) throws IOException, InterruptedException { CyclicBarrier barrier = new CyclicBarrier(3); // 3ExecutorService executor = Executors.newFixedThreadPool(3); executor.submit(new Thread(new Runner(barrier, "zhangsan"))); executor.submit(new Thread(new Runner(barrier, "lisi"))); executor.submit(new Thread(new Runner(barrier, "wangwu"))); executor.shutdown(); } }
java的CyclicBarrier使用相关推荐
- java中CyclicBarrier的使用
文章目录 CyclicBarrier的方法 CyclicBarrier的使用 java中CyclicBarrier的使用 CyclicBarrier是java 5中引入的线程安全的组件.它有一个bar ...
- Java并发– CyclicBarrier示例
Java中的CyclicBarrier是JDK 5中java.util.Concurrent包中引入的同步器,以及其他并发实用程序(如Counting Semaphore , BlockingQueu ...
- LeetCode 1115. Print FooBar Alternately--多线程并发问题--Java解法--CyclicBarrier, synchronized, Semaphore 信号量
此文首发于我的个人博客:zhang0peter的个人博客 LeetCode题解专栏:LeetCode题解 LeetCode 所有题目总结:LeetCode 所有题目总结 题目地址:Print FooB ...
- java多线程-CyclicBarrier
主要成员变量: private final ReentrantLock lock = new ReentrantLock();private final Condition trip = lock.n ...
- Java并发编程: CyclicBarrier让多线程齐步走
以前在<<编写高质量代码-改善Java程序的151个建议>>一书中看到有一节的标题是"CyclicBarrier让多线程齐步走",觉得这标题挺不错的,所以在 ...
- java面试题2019 答案
Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 Stri ...
- 2017年50道Java线程面试题
下面是Java线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编 ...
- Java线程面试题 Top 50(转)
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎.大多数待遇丰厚的Java开发职位都要求开发者精通多线程 ...
- 【多线程】Java线程面试题 Top 50(转载)
Java线程面试题 Top 50 原文链接:http://www.importnew.com/12773.html 本文由 ImportNew - 李 广 翻译自 javarevisited.欢迎加入 ...
最新文章
- 杜克大学和Facebook联手开发更好的光通信
- ListView 空值时的友好提示
- yii2 设置的缓存无效,返回false,不存在
- cisco 路由器访问权限的设置
- 13 个应该记住的最不寻常的搜索引擎
- Android 为应用添加默认加载页
- Docker技术入门与实战
- web Server支持 perl
- 蒲公英如何正确泡水喝?可以和哪些食物一起搭配?
- Jmter接口测试二
- EPM连接显示服务器不可用,EPM问题汇总之-SmartView无法连接Essbase
- 手机运作html实现弹窗,html5实现手机弹窗留言对话框(摘)
- java遍历二级城市_java8用Lambda遍历省市区三级数据
- Ugly Windows UVA - 1419
- 2018.4.3晚_京东实习_后端开发面试记录
- 对 IIC 总线的理解、调用函数以及常见面试问题
- 【重磅盘点】62种PCB板不良实例的原因分析及规避措施!必收藏干货!
- 多项式polynomial 考试 解题报告
- 学校网站建设解决方案_学校网站建设方案怎么写
- Python基础-类变量和实例变量
热门文章
- chrome设置微信ua_Chrome谷歌浏览器模拟微信内置浏览器的方法(电脑上)
- 七边形简单画法步骤图_零基础国画教程:分步骤图解教你画3种常见树画法,简单易学...
- 基于java的学生点名系统_基于javafx的学生电子点名系统(在eclipse中编写完成)...
- python合法关键字是_python练习题-day18
- beanutils工具类_Apache Commons 工具类介绍及简单使用
- android 消息循环滚动条,Android ViewPager实现循环滚动
- fprintf函数的用法_MATLAB的21种特殊符号,总有一种你不知道的用法
- grep搜索带有特殊符号的规律
- xgboost每次迭代取得最优值方法
- 环境变量空格符号带来的坑