current包下CyclicBarrier的使用
2015-12-27 00:00
609 查看
当多个任务,都需要到达特定的步骤之后,所有任务才都继续下去。那么我们需要的就是CayclicBarrier。
demo:
上面的demo起了5个线程,只有等到所有线程都执行到cyclicBarrier.await().的地方的时候,大家才会继续执行下面的代码。
demo:
public static void main(String[] args) { final CyclicBarrier cyclicBarrier = new CyclicBarrier(5); for (int i = 0; i < 5; i++) { final int sleepTime = i * 1000; new Thread(new Runnable() { public void run() { System.out.println(Thread.currentThread().getName() + " 开始读取数据...."); try { Thread.currentThread().sleep(sleepTime * 2); cyclicBarrier.await(); } catch (InterruptedException e) { e.printStackTrace(); } catch (BrokenBarrierException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName() + " 数据读取完成......"); } }).start(); } }
上面的demo起了5个线程,只有等到所有线程都执行到cyclicBarrier.await().的地方的时候,大家才会继续执行下面的代码。
相关文章推荐
- 探究在C++程序并发时保护共享数据的问题
- Nodejs实战心得之eventproxy模块控制并发
- MYSQL安装时解决要输入current root password的解决方法
- java多线程和并发包入门示例
- 浅析PHP中Session可能会引起并发问题
- Oracle 数据库针对表主键列并发导致行级锁简单演示
- MySQL中SELECT+UPDATE处理并发更新问题解决方案分享
- php中current、next与reset函数用法实例
- Java并发编程中的生产者与消费者模型简述
- Java并发编程之栅栏(CyclicBarrier)实例介绍
- Java中同步与并发用法分析
- Java多线程编程中的两种常用并发容器讲解
- Java实现的并发任务处理实例
- Go语言并发模型的2种编程方案
- Go语言并发技术详解
- JAVA多线程与并发学习总结分析
- JAVA多线程和并发基础面试问答(翻译)
- Java中CyclicBarrier的用法分析
- 在Java内存模型中测试并发程序代码
- 线程池的理解