概述
CyclicBarrier
与CountDownLatch
类似,它们都是阻塞一组线程直到某个事件的发生。CyclicBarrier
与CountDownLatch
的关键区别在于,CyclicBarrier
中的所有的线程必须同时达到屏蔽点才能继续执行,如果其中一个线程被中断,那么所有的等待的线程都会立刻被唤醒,并且抛出异常。而CountDownLatch
中线程之间不会收到干扰。CyclicBarrier
可以复用,每次打破屏障后,都会生成一个新的屏障,供下次使用,而CountDownLatch
用一次之后就无效了。