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.欢迎加入 ...
最新文章
- 深度丨AI界的七大未解之谜:OpenAI丢出一组AI研究课题
- boost::hana::pair_tag用法的测试程序
- 为什么要用MyBatis-JDBC 连接数据库
- mysqli 扩展_MySQLi的优势
- Java 判断密码是否是大小写字母、数字、特殊字符中的至少三种
- SVN更新数据和提交数据的几个疑问
- 简单聊聊模型的性能评估标准
- 每天2分钟,10个简单方法改变你的生活
- 《C++字符串完全指南——第一部分:win32 字符编码》
- linux make命令实现,Linux make命令主要参数详解
- java第一次上机_java第一次上机实验--验证码
- 正点原子操作过程中芯片总是出错
- 语音识别行业成长红利期已过,行业寡头显现,小公司生存状况堪忧
- 贺利坚老师汇编课程27笔记(二):loop和[bx]访问连续内存单元
- 数据结构 周末舞会(循环队列解法)
- 6183. 字符串的前缀分数和(每日一难phase2--day18)
- 无线打印机服务器安装教程,网络打印服务器怎么安装和使用?
- 计算机信函 教案模板,一年级信息技术课教案模板三篇
- 智汀如何让绿米Aqara无线开关一键联动不同品牌的智能设备?以智汀窗帘电机、星辰智能台灯为例
- 软件产品的增值税税率该如何选择?
热门文章
- 特殊空格的坑,原来空格可以有好多种
- matlab ltiview应用例子,Matlab控制工具箱(网络软件)
- python packages_Python-Packages
- python高斯滤波和降噪_高斯滤波原理及python实现
- python求三个整数最大值_怎么用python比较三个数大小
- cad lisp 两侧偏移并删除_弱电CAD不算CAD?学学操作,将手速发挥极致,让他人刮目相看...
- mysql characterencoding 枚举值_mysql中enum类型理解,读完之后,大部分程序员收藏了......
- c盘扩展卷是灰色的_技术丨电脑C盘装太满?这几招轻松释放空间
- Cluster coefficient的理解
- 分布式是什么,集群又是什么呢