JUC 辅助类 CyclicBarrier 循环栅栏

一、用法

当数量达到 定义的值,执行CyclicBarrier里面的内容

二、语法

1、定义对象

CyclicBarrier cyclicBarrier =
    new CyclicBarrier(NEED_NUM, Runnable);

2、在线程中使用await()方法

三、案例

package com.wt.juc;

import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;

public class CyclicBarrierDemon {
    
    // 1. 数量定义7次
    private final static int NEED_NUM = 7;

    public static void main(String[] args) {
        // 2.定义CyclicBarrier对象
        CyclicBarrier cyclicBarrier =
                new CyclicBarrier(NEED_NUM, () -> {
                    System.out.println("*****收集完成");
                });
        for (int i = 0; i < 7; i++) {
            new Thread(()->{
                try {
                    System.out.println(Thread.currentThread().getName()+"被收集");
                    // 3.线程执行7次后,执行 cyclicBarrier里面的内容
                    cyclicBarrier.await();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }, String.valueOf(i)).start();
        }
    }
}

 

posted @ 2025-05-31 20:54  市丸银  阅读(8)  评论(0)    收藏  举报