package com.itjava.interview;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;
public class CyclicBarrierDemo {
public static void main(String[] args) {
//CyclicBarrier(int parties, Runnable barrierAction) 做加法的一直加到7
CyclicBarrier cyclicBarrier = new CyclicBarrier(7, () -> {
System.out.println("******召唤神龙 !");
});
for (int i = 0; i <= 7; i++) {
final int tempInt = i;
new Thread(()->{
System.out.println(Thread.currentThread().getName()+"\t 收集到第d"+tempInt+"龙珠");
try {
cyclicBarrier.await();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (BrokenBarrierException e) {
e.printStackTrace();
}
},String.valueOf(i)).start();
}
}
}
CyclicBarrier 人到齐再开会
最新推荐文章于 2022-03-06 20:13:16 发布
本文通过一个趣味性的示例,展示了Java并发工具CyclicBarrier的使用方法。通过模拟收集龙珠的过程,详细解释了CyclicBarrier如何在多线程环境中同步任务,当收集到指定数量的龙珠(即达到预设的线程数)时,触发特定的动作(召唤神龙)。此示例不仅加深了对CyclicBarrier工作原理的理解,还提供了实际应用的代码参考。
2770

被折叠的 条评论
为什么被折叠?



