循环栅栏,用来进行线程协作,等待线程满足某个计数。构造时设置计数个数。
与CountdownLatch比较,CyclicBarrier是可以重用的。CountdownLatch每次都要创建新的对象,计数个数一旦设置也不能修改。
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(2);
CyclicBarrier cyclicBarrier = new CyclicBarrier(2);
executorService.submit(() -> {
log.debug("task1 begin...");
try {
Thread.sleep(1000);
cyclicBarrier.await();
} catch (InterruptedException | BrokenBarrierException e) {
e.printStackTrace();
}
log.debug("task1 end...");
});
executorService.submit(() -> {
lo