CountDownLatch与CyclicBarrier区别,举例

1、CountDownLatch 等待一个或多个线程执行完,再执行。

栗子:飞机起飞前各个检查完,起飞。

初始化:

CountDownLatch countD = new CountDownLatch(3);

起飞进程wait(),阻塞;

每个检查完,countD.countDown();

当countD直到为0,起飞。

 

2、CyclicBarrier 等待过个线程准备好后,统一执行。

栗子:所有飞机到位后,统一起飞。

CyclicBarrier barrier = new CyclicBarrier(3);

for(int i = 0; i < 3; i++){

  plan.prepare();

  barrer.await();

}

 

posted @ 2017-11-04 11:13  川雨淅  阅读(438)  评论(0编辑  收藏  举报