CyclicBarrier

server/2024/10/19 7:30:10/

循环栅栏,用来进行线程协作,等待线程满足某个计数。构造时设置『计数个数』,每个线程执行到某个需要“同步”的时刻调用 await() 方法进行等待,当等待的线程数满足『计数个数』时,继续执行

java">ExecutorService service = Executors.newFixedThreadPool(2);CyclicBarrier barrier = new CyclicBarrier(2,()->{log.debug("task1 task2 finish...");});service.submit(()->{log.debug("task1 begin……");try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}try{barrier.await();log.debug("task1 end……");}catch (InterruptedException | BrokenBarrierException e){e.printStackTrace();}});service.submit(()->{log.debug("task2 begin……");try {Thread.sleep(2000);log.debug("task2 end……");} catch (InterruptedException e) {throw new RuntimeException(e);}try{barrier.await();}catch (InterruptedException | BrokenBarrierException e){e.printStackTrace();}});

注意 CyclicBarrier 与 CountDownLatch 的主要区别在于 CyclicBarrier 是可以重用的 CyclicBarrier 可以被比
喻为人满发车

注意:
使用我们的CyclicBarrier ,要是我们的线程池中的线程数和CyclicBarrier 的数量大小一样才能发挥CyclicBarrier 的人满发车效果。


http://www.ppmy.cn/server/28662.html

相关文章

IDEA基于Maven构建项目

IDEA基于Maven构建项目 一、Maven简介 Apache Maven 是一个软件项目管理和理解工具。基于项目对象模型的概念(POM),Maven 可以从中心信息中管理项目的构建、报告和文档。 Apache Maven 可以用于构建和管理任何基于 Java 的项目。 下载地址…

【实时数仓架构】方法论

笔者不是专业的实时数仓架构,这是笔者从其他人经验和网上资料整理而来,仅供参考。写此文章意义,加深对实时数仓理解。 一、实时数仓架构技术演进 1.1 四种架构演进 1)离线大数据架构 一种批处理离线数据分析架构,…

OpenAI发布GPT-4.0使用指南

大家好,ChatGPT 自诞生以来,凭借划时代的创新,被无数人一举送上生成式 AI 的神坛。在使用时,总是期望它能准确理解我们的意图,却时常发现其回答或创作并非百分之百贴合期待。这种落差可能源于我们对于模型性能的过高期…

Springboot 的Bean对象找不到问题

看红色的字体显示: Controller需要Service这个Bean对象 解决方式: Service类忘记写实现了

SpringMVC进阶(自定义拦截器以及异常处理)

文章目录 1.自定义拦截器1.基本介绍1.说明2.自定义拦截器的三个方法3.流程图 2.快速入门1.Myinterceptor01.java2.FurnHandler.java3.springDispatcherServlet-servlet.xml配置拦截器4.单元测试 3.拦截特定路径1.拦截指定路径2.通配符配置路径 4.细节说明5.多个拦截器1.执行流程…

Github2024-04-28php开源项目日报Top9

根据Github Trendings的统计,今日(2024-04-28统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目9JavaScript项目1Blade项目1SecLists - 安全测试人员的伴侣 创建周期:4375 天开发语言:PHP协议类型:MIT LicenseStar数量:52010 个Fo…

邦注科技模具监视器 模具CCD影像检测 电子眼代替人眼

在制造行业,很多公司在模具方面损失很大,由于不同模具的特殊性不规则形导致尽管采取很多模具保护措施却依然无法减少压模带来的损失。针对这一行业难点讯采科技自主研发的模具监视器利用先进的机器视觉技术代替人眼实时监控模具运行情况,智能…

CommonJS-模块与ES模块简单了解与区别

文章目录 CommonJS 模块与ES模块简单了解与区别一、简介二、区别1.语法差异2.实现差异 三、其他 CommonJS 模块与ES模块简单了解与区别 今天在用vite构建项目时,用了module.exports写法一直报错,后面了解是因为commonJS模块(以下简称CJS)与E…