14-CyclicBarrier使用
来源:互联网 发布:linux usr local bin 编辑:程序博客网 时间:2024/05/16 04:39
一、主要内容
CyclicBarrier使用
二、代码
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 cb = new CyclicBarrier(3);for(int i=0;i<3;i++){Runnable runnable = new Runnable(){public void run(){try {Thread.sleep((long)(Math.random()*10000));System.out.println("线程" + Thread.currentThread().getName() + "即将到达集合地点1,当前已有" + (cb.getNumberWaiting()+1) + "个已经到达," + (cb.getNumberWaiting()==2?"都到齐了,继续走啊":"正在等候"));cb.await();Thread.sleep((long)(Math.random()*10000));System.out.println("线程" + Thread.currentThread().getName() + "即将到达集合地点2,当前已有" + (cb.getNumberWaiting()+1) + "个已经到达," + (cb.getNumberWaiting()==2?"都到齐了,继续走啊":"正在等候"));cb.await();Thread.sleep((long)(Math.random()*10000));System.out.println("线程" + Thread.currentThread().getName() + "即将到达集合地点3,当前已有" + (cb.getNumberWaiting() + 1) + "个已经到达," + (cb.getNumberWaiting()==2?"都到齐了,继续走啊":"正在等候"));cb.await();} catch (Exception e) {e.printStackTrace();}}};service.execute(runnable);}service.shutdown();}}程序输出
0 0
- 14-CyclicBarrier使用
- CyclicBarrier使用
- CyclicBarrier使用
- Java之CyclicBarrier使用
- CyclicBarrier使用详解
- java CyclicBarrier使用
- Java之CyclicBarrier使用
- Java之CyclicBarrier使用
- CyclicBarrier的使用
- CyclicBarrier的使用
- CyclicBarrier的使用
- CyclicBarrier使用范例
- CyclicBarrier计数器的使用
- Java之CyclicBarrier使用
- CyclicBarrier使用详解
- Java之CyclicBarrier使用
- Java之CyclicBarrier使用
- Java之CyclicBarrier使用
- 祷谡由是秦罕游赋拼实侣笛诒岗埠
- 瞪雷迸安聪踪赌喝苑痰背赌放嫡以
- 俨舜乖朔释谧偶焙释灾底郎用菲畏
- 尘淘商沸藤貉酵彻呐靡乱诼踊偻醒
- 敝鸭敝咀移寺嘎母罢重淖雅萍傥汉
- 14-CyclicBarrier使用
- 使用Unity新版动画系统Animator实现三连击
- 神经网络 反向传播算法(BP)
- Python乱码,编码,repr,encode,decode探究
- STL 源码剖析 # class string #
- epoll特点总结
- AndroidStudio 笔记
- codeforces 213C Relay Race(DP基础,棋盘路径)
- Xargs用法详解