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详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中遍历Map的多种方法示例及优缺点总结

    Java中遍历Map的多种方法示例及优缺点总结

    在java中遍历Map有不少的方法,下面这篇文章主要给大家介绍了关于Java中遍历Map的多种方法,以及各种方法的优缺点总结,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • Spring及Mybatis整合占位符解析失败问题解决

    Spring及Mybatis整合占位符解析失败问题解决

    这篇文章主要介绍了Spring及Mybatis整合占位符解析失败问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Java中三种零拷贝的实现示例以及对比详解

    Java中三种零拷贝的实现示例以及对比详解

    这篇文章主要介绍了Java中三种零拷贝的实现示例以及对比详解,本文主要是介绍几种零拷贝的实现示例,以及与最传统的做一个对比,看看在效率上到底有多大的提升,需要的朋友可以参考下
    2023-12-12
  • Mybatis中like搭配concat的写法详解

    Mybatis中like搭配concat的写法详解

    这篇文章主要介绍了Mybatis中like搭配concat的写法详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java设计模式之单例模式示例详解

    Java设计模式之单例模式示例详解

    单例模式是最简单也是最基础的设计模式之一,单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。本文将通过一些示例代码为大家详细介绍一下单例模式,感兴趣的可以了解一下
    2021-12-12
  • 一文告诉你为什么要重写hashCode()方法和equals()方法

    一文告诉你为什么要重写hashCode()方法和equals()方法

    本篇文章带大家了解一下为什么重写hashCode()方法和equals()方法,文中有非常详细的说明以及代码示例,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • java设计模式之装饰器模式(Decorator)

    java设计模式之装饰器模式(Decorator)

    这篇文章主要为大家详细介绍了java设计模式之装饰器模式Decorator,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • Java设计模式之观察者模式(Observer模式)

    Java设计模式之观察者模式(Observer模式)

    这篇文章主要介绍了Java设计模式之观察者模式(Observer模式),文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • JAVA 静态代理模式详解及实例应用

    JAVA 静态代理模式详解及实例应用

    这篇文章主要介绍了JAVA 静态代理模式详解及实例应用的相关资料,这里举例说明java 静态代理模式该如何使用,帮助大家学习参考,需要的朋友可以参考下
    2016-11-11
  • springboot整合sentinel的方法教程

    springboot整合sentinel的方法教程

    这篇文章主要介绍了springboot整合sentinel的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11

最新评论