CyclicBarrier(循环栅栏)

CyclicBarrier 
public class CyclicBarrierDemo {

    public static void main(String[] args)
    {
        CyclicBarrier cyclicBarrier = new CyclicBarrier(7,()->{
            System.out.println("集齐7颗龙珠召唤神龙");
        });
        for (int i =1; i <=7 ; i++) {
            new Thread(()->{

                try {
                    System.out.println(Thread.currentThread().getName()
                            +"\t 星龙珠被收集");
                    cyclicBarrier.await();
                    System.out.println("阻塞释放");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } catch (BrokenBarrierException e) {
                    e.printStackTrace();
                }
            },String.valueOf(i)).start();
        }
    }
}

结果

2     星龙珠被收集
5     星龙珠被收集
4     星龙珠被收集
3     星龙珠被收集
1     星龙珠被收集
7     星龙珠被收集
6     星龙珠被收集
集齐7颗龙珠召唤神龙
阻塞释放
阻塞释放
阻塞释放
阻塞释放
阻塞释放
阻塞释放
阻塞释放

 

posted @ 2020-03-15 14:03  常温的冰  阅读(153)  评论(0)    收藏  举报