ConCurrent包下工具类-CyclicBarrier
来源:互联网 发布:哪个软件可以看英剧 编辑:程序博客网 时间:2024/05/17 04:44
需要一组线程同时达到某个条件后一起啊开始执行。
类似的场景:一个线程代表一个跑步运动员,当所有的运动员都准备好了之后才一起出发。只要有一个没有准备好,大家都继续等待。
package com.lihuan.concurrentUtil;import java.util.Random;import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class CyclicBarrierTest { static class MyRunnable implements Runnable{ private CyclicBarrier barrier; private String name; public MyRunnable(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"); //每个线程执行await()开始等待 barrier.await(); } catch (Exception e) { e.printStackTrace(); } System.out.println(name+"GO!!!"); } } public static void main(String[] args) { //创建CyclicBarrier 设置屏障数为3 CyclicBarrier barrier = new CyclicBarrier(3); /** * 创建固定数量的线程池 * 添加三个线程 * 每个线程执行await()开始等待 * 当三个线程都调用await()时开始,一起开始执行 */ ExecutorService pool = Executors.newFixedThreadPool(3); pool.execute(new Thread(new MyRunnable(barrier, "zhangsan"))); pool.execute(new Thread(new MyRunnable(barrier, "lisi"))); pool.execute(new Thread(new MyRunnable(barrier, "wangwu"))); pool.shutdown(); }}
结果
阅读全文
0 0
- ConCurrent包下工具类-CyclicBarrier
- ConCurrent包下工具类-CountDownLatch
- JAVA concurrent包学习--CyclicBarrier
- java.util.concurrent包(6)-CyclicBarrier使用
- Java.utils.concurrent包中的几个有用的类(CountDownLatch、CyclicBarrier、Semaphore)
- ubuntu 下工具收集
- linux 下工具
- window下工具简介
- linux下工具md5sum
- mac下工具汇总
- mac下工具记录
- 同步辅助类 java.util.concurrent.CyclicBarrier
- Java多线程之concurrent包(五)——CyclicBarrier
- java.util.concurrent包详解:CyclicBarrier和CountDownLatch
- java concurrent包下CyclicBarrier的初步使用
- concurrent包下的CyclicBarrier和CountDownLatch以及Semaphore
- ubuntu及windows下工具
- java.util.concurrent.CyclicBarrier
- wireshark抓包的一些命令
- hiho 1599 dfs乱搞 [Offer收割]编程练习赛29 Problem A 逃离迷宫4
- C++子类对象隐藏了父类的同名成员函数(隐藏篇)
- 图论分类讨论 bzoj2503相框
- Eclipse编译时保留方法的形参<转>
- ConCurrent包下工具类-CyclicBarrier
- POJ 1741 Tree (树分治模板题)
- 大学生职业生涯规划
- Non-ASCII character '\xb3' in file e:\python\ship.py on line 6, but no encoding declared;
- POJ3169(差分约束系统)
- 关于C++子类父类成员函数的覆盖和隐藏
- woj 1124 最大流
- PAT 甲级 1058. A+B in Hogwarts (20)
- 编写函数,获取两段字符串的最长公共子串的长度