写两个CyclicBarrier、Phaser的例子。
一、CyclicBarrier。线程达到一定数量再一起执行
public class Test_Cyclic {
public static void main(String[] args) {
CyclicBarrier cyclicBarrier = new CyclicBarrier(3, () -> System.out.println("执行"));
for (int i = 0; i < 6; i++) {
final int temp = i;
new Thread(){
@Override
public void run() {
super.run();
System.out.println("线程" +temp + ":开始");
try {
cyclicBarrier.await();
System.out.println("线程" +temp + ":结束");
} catch (InterruptedException e) {
e.printStackTrace();
} catch (BrokenBarrierException e) {
e.printStackTrace();
}
}
}.start();
}
}
}
结果:

本文通过示例介绍了如何使用Java并发工具CyclicBarrier。CyclicBarrier允许一组线程互相等待,直到到达某个公共屏障点。示例中创建了一个CyclicBarrier实例,设置为等待三个线程。随后启动六个线程,每个线程都会调用await()方法来等待其他线程就绪。
6811

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



