@Slf4j
public class CyclicBarrierExample {
private static CyclicBarrier cyclicBarrier = new CyclicBarrier(5);
public static void main(String[] args) throws InterruptedException {
ExecutorService excutor = Executors.newCachedThreadPool();
for (int i=0;i<10;i++){
Thread.sleep(1000);
final int threadNum = i;
excutor.execute(new Runnable() {
@Override
public void run() {
try {
race(threadNum);
} catch (Exception e) {
log.error("exception: {}",e);
}
}
});
}
excutor.shutdown();
}
private static void race(int threadNum)throws Exception{
Thread.sleep(1000);
log.info("{} is ready",threadNum);
cyclicBarrier.await();
log.info("{} is finish",threadNum);
}
}
转载于:https://my.oschina.net/wuyiyi/blog/2979990