CountDownLatch与CyclicBarrier区别,举例

Posted 川雨淅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();

}

 

以上是关于CountDownLatch与CyclicBarrier区别,举例的主要内容,如果未能解决你的问题,请参考以下文章

AQS原理探究

AQS原理探究

CountDownLatch与CyclicBarrier与Semaphore的区别

CountDownLatch与CyclicBarrier

CyclicBarrier与CountDownLatch的区别

CycleBarrier与CountDownLatch原理