您的位置:首页 > 编程语言 > Java开发

current包下CyclicBarrier的使用

2015-12-27 00:00 609 查看
当多个任务,都需要到达特定的步骤之后,所有任务才都继续下去。那么我们需要的就是CayclicBarrier。

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().的地方的时候,大家才会继续执行下面的代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息