什么是CyclicBarrier
同步屏障,允许一组线程互相等待以到达一个公共的障碍点。当设定的线程数到达屏障时,阻塞的线程继续执行。
构造方法
- CyclicBarrier(int parties),parties设定的阻碍线程数。
- CyclicBarrier(int parties, Runnable barrierAction),barrierAction任务,设定的线程数都到达屏障时,才会执行。
模拟场景
景区游览车,一次坐满20人就发车,公司团建共去了100人。
public class TestCyclicBarrier { public static void main(String[] args) { CyclicBarrier barrier = new CyclicBarrier(20, new Runnable() { @Override public void run() { System.out.println("满人,发车"); } }); for(int i=0; i<100; i++) { new Thread(()->{ try { barrier.await(); } catch (InterruptedException e) { e.printStackTrace(); } catch (BrokenBarrierException e) { e.printStackTrace(); } }).start(); } } }
您可能感兴趣的文章: