Java线程同步工具-CyclicBarrier
来源:互联网 发布:c语言定义二维数组 编辑:程序博客网 时间:2024/06/06 01:22
CyclicBarrier
可以近似理解为线程运行的任务总量
- 测试代码
package com.zhiwei.thread;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 threadPool = Executors.newCachedThreadPool(); CyclicBarrier cb = new CyclicBarrier(3); // 规定总的任务量:只有全部完成才会进行下一步处理 for (int i = 0; i < 3; i++) { threadPool.execute(new Runnable() { @Override public void run() { try { Thread.sleep((long) (Math.random() * 10000)); System.out.println(Thread.currentThread().getName() + ":完成分任务,剩余任务:" + (2 - cb.getNumberWaiting())); //如果前面2个线程阻塞+正在运行的线程 = 3,表明总任务完成 if (cb.getNumberWaiting() == 2) { System.out.println("恭喜,总任务已完成!"); } cb.await(); //分任务完成则等待,直到搜索的任务都完成,才执行await后面的代码 } catch (Exception e) { e.printStackTrace(); } } }); } threadPool.shutdown(); }}
- 效果
阅读全文
0 0
- Java线程同步工具-CyclicBarrier
- java 线程 同步工具 CyclicBarrier
- CyclicBarrier线程同步工具
- 线程同步工具-CyclicBarrier
- 线程同步工具类--CyclicBarrier
- 线程同步工具之CyclicBarrier
- 【java并发】线程同步工具CyclicBarrier的使用
- 线程同步工具类——CyclicBarrier
- 线程同步工具类,CyclicBarrier学习
- Java多线程同步工具之CyclicBarrier
- Java并发学习之十八——线程同步工具之CyclicBarrier
- 线程同步之CyclicBarrier
- CyclicBarrier同步工具应用
- cyclicBarrier同步工具类
- 同步工具CyclicBarrier
- 11____java线程同步工具类之障碍器(CyclicBarrier)
- 多线程编程入门(16):线程同步工具之CyclicBarrier
- Java线程知识__其他几种线程同步的工具类的使用(CyclicBarrier,CountDownLatch,Exchanger)
- Java实例变量、类变量与局部变量
- kubernetes容器启动详解
- 最全HTTPS扫肓贴
- URAL 1277 网络流最小割 解题报告
- sublime text3 的插件下载及汉化
- Java线程同步工具-CyclicBarrier
- 数据压缩算法实现
- request.getRequestURI()的使用
- maven
- JSP内置对象的使用:request,cookie,session
- Android启动流程(一)
- 看雪ctf2017第一题详解
- Properties配置文件数据加密
- Java抽象类