多线程工具--CyclicBarrier

写两个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();
        }
    }
}

结果:

猜你喜欢

转载自blog.csdn.net/MrBack/article/details/114994685