• JUC强大的辅助类讲解--->>>CyclicBarrier(循环栅栏)


    原理:

    CyclicBarrier的字面意思是可循环(Cyclic)使用的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,

    直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。线程进入屏障通过CyclicBarrier的await()方法。

    package com.atguigu.thread;
     
    import java.util.concurrent.BrokenBarrierException;
    import java.util.concurrent.CyclicBarrier;
     
    /**
     * 
     *
     * CyclicBarrier
     * 的字面意思是可循环(Cyclic)使用的屏障(Barrier)。它要做的事情是,
     * 让一组线程到达一个屏障(也可以叫同步点)时被阻塞,
     * 直到最后一个线程到达屏障时,屏障才会开门,所有
     * 被屏障拦截的线程才会继续干活。
     * 线程进入屏障通过CyclicBarrier的await()方法。
     * 
     * 集齐7颗龙珠就可以召唤神龙
     */
    public class CyclicBarrierDemo
    {
      private static final int NUMBER = 7;
      
      public static void main(String[] args)
      {
         //CyclicBarrier(int parties, Runnable barrierAction) 
         
         CyclicBarrier cyclicBarrier = new CyclicBarrier(NUMBER, ()->{System.out.println("*****集齐7颗龙珠就可以召唤神龙");}) ;
         
         for (int i = 1; i <= 7; i++) {
           new Thread(() -> {
              try {
                System.out.println(Thread.currentThread().getName()+"	 星龙珠被收集 ");
                cyclicBarrier.await();
              } catch (InterruptedException | BrokenBarrierException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
              }
           
           }, String.valueOf(i)).start();
         }
         
     
      }
    }
  • 相关阅读:
    云计算 备忘录
    python 备忘录
    Linux 备忘录
    appium自动化的一个实例
    appium环境的搭建
    四则运算2单元测试
    四则运算2
    四则运算2程序设计思路
    上课未及时完成的原因
    随机生成30道四则运算题程序设计
  • 原文地址:https://www.cnblogs.com/cb1186512739/p/12738223.html
Copyright © 2020-2023  润新知