マルチスレッドツール--CyclicBarrier

CyclicBarrierとPhaserの2つの例を書いてください。

1つは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