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详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
一文告诉你为什么要重写hashCode()方法和equals()方法
本篇文章带大家了解一下为什么重写hashCode()方法和equals()方法,文中有非常详细的说明以及代码示例,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下2021-05-05
最新评论