多线程编程入门(16):线程同步工具之CyclicBarrier
来源:互联网 发布:centos 7.0安装教程 编辑:程序博客网 时间:2024/06/07 15:07
package cn.itcast.heima2;import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class CyclicBarrierTest {public static void main(String[] args) {ExecutorService service = Executors.newCachedThreadPool();final CyclicBarrier cyclicBarrier = new CyclicBarrier(3);for (int i = 0; i < 3; i++) {Runnable runnable = new Runnable() {@Overridepublic void run() {try {Thread.sleep((long) (Math.random() * 10000));System.out.println("线程"+ Thread.currentThread().getName()+ "即将到达集合地点1,当前已有"+ (cyclicBarrier.getNumberWaiting() + 1)+ (cyclicBarrier.getNumberWaiting() == 2 ? "都到齐了,继续走呀": "正在等候"));cyclicBarrier.await();Thread.sleep((long) (Math.random() * 10000));System.out.println("线程"+ Thread.currentThread().getName()+ "即将到达集合地点2,当前已有"+ (cyclicBarrier.getNumberWaiting() + 1)+ (cyclicBarrier.getNumberWaiting() == 2 ? "都到齐了,继续走呀": "正在等候"));cyclicBarrier.await();Thread.sleep((long) (Math.random() * 10000));System.out.println("线程"+ Thread.currentThread().getName()+ "即将到达集合地点3,当前已有"+ (cyclicBarrier.getNumberWaiting() + 1)+ (cyclicBarrier.getNumberWaiting() == 2 ? "都到齐了,继续走呀": "正在等候"));cyclicBarrier.await();} catch (Exception e) {e.printStackTrace();}}};service.execute(runnable);}service.shutdown();}}
参考链接
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CyclicBarrier.html
0 0
- 多线程编程入门(16):线程同步工具之CyclicBarrier
- 线程同步工具之CyclicBarrier
- 多线程编程入门(15):线程同步工具之Semaphore(信号量)
- 多线程编程入门(17):线程同步工具之CountDownLatch
- 多线程编程入门(18):线程同步工具之Exchanger
- 多线程编程12-----CyclicBarrier同步工具类
- Java多线程同步工具之CyclicBarrier
- CyclicBarrier线程同步工具
- 线程同步工具-CyclicBarrier
- 线程同步之CyclicBarrier
- 线程同步工具类--CyclicBarrier
- Java线程同步工具-CyclicBarrier
- java 线程 同步工具 CyclicBarrier
- 11____java线程同步工具类之障碍器(CyclicBarrier)
- 并发编程实战手册-线程同步辅助类之CyclicBarrier
- 同步工具类之 CyclicBarrier
- 线程同步工具类——CyclicBarrier
- 线程同步工具类,CyclicBarrier学习
- SparkMLlib---SGD随机梯度下降算法
- 用递归方式实现二叉树先序、中序、后序遍历
- Volley 的基本使用
- 文章标题
- Android Studio引用第三方jar包及开源library的方法
- 多线程编程入门(16):线程同步工具之CyclicBarrier
- uva10129 欧拉回路 判断出入度数 连通性 遍历压栈
- 【LEETCODE】368- Largest Divisible Subset [Python]
- uva10003 切木棍 线性区间dp
- uva1626 括号序列
- uva1625 颜色的长度
- uva1618 分步枚举优化
- java LinkedList 基本用法
- 电话本再实现