Java多线程中的CyclicBarrier详解

 更新时间:2023年11月20日 11:14:01   作者:梦断泪影  
这篇文章主要介绍了Java多线程中的CyclicBarrier详解,同步屏障,允许一组线程互相等待以到达一个公共的障碍点,当设定的线程数到达屏障时,阻塞的线程继续执行,需要的朋友可以参考下

什么是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();
        }
    }
}

到此这篇关于Java多线程中的CyclicBarrier详解的文章就介绍到这了,更多相关CyclicBarrier详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论