多线程任务执行后发送通知,CyclicBarrier使用

一种同步辅助,允许一组线程互相等待到达一个共同的障碍点。CyclicBarriers在涉及固定大小的线程群的程序中很有用,这些线程群必须偶尔相互等待。这个屏障被称为循环的,因为它可以在等待的线程被释放后被重用。

CyclicBarrier支持一个可选的Runnable命令,该命令在每个barrier点上运行一次,在队列中的最后一个线程到达之后,但在任何线程被释放之前。这个barrier动作对于在任何一方继续之前更新共享状态非常有用。

import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;class CyclicBarrierTests {public static void main(String[] args) {/*** 工作进程执行完毕后通知负责人*/CyclicBarrier cyclicBarrier = new CyclicBarrier(7, () -> {System.out.println("所有任务执行完毕,通知负责人");});for (int i = 0; i < 7; i++) {new Thread(() -> {System.out.println(Thread.currentThread().getName() + "执行任务");try {cyclicBarrier.await();} catch (InterruptedException | BrokenBarrierException e) {e.printStackTrace();}}, "线程" + i).start();}}
}

执行结果

线程1执行任务
线程3执行任务
线程2执行任务
线程0执行任务
线程4执行任务
线程6执行任务
线程5执行任务
所有任务执行完毕,通知负责人

多线程任务执行后发送通知,CyclicBarrier使用相关推荐

  1. AndroidStudio_android通过服务,检测本程序是否已经终止运行_终止运行后发送通知给Http服务器---Android原生开发工作笔记246

    先做的一个项目,大体是,我这边如果程序已经停止,需要发送一个通知给远程的Httpserver服务器, 然后,远程服务器会通过websocket,通知,显示在大屏上的页面,去清空大屏数据,这样就有问题了 ...

  2. PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...

    源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkP ...

  3. Gitlab通过Webhook自动触发Jenkins构建任务并在更新完毕后发送钉钉消息通知

    Gitlab通过Webhook自动触发Jenkins构建任务并在更新完毕后发送钉钉消息通知 文章目录 Gitlab通过Webhook自动触发Jenkins构建任务并在更新完毕后发送钉钉消息通知 1.实 ...

  4. Java中控制多线程顺序执行

    Java中控制多线程顺序执行 一.概述 二.普通示例 三.控制示例 3.1.设置线程优先级 3.2.使用线程类的join() 3.2.1.在主线程join() 3.2.2.在子线程join() 3.3 ...

  5. Swift - 使用NSNotificationCenter发送通知,接收通知

    1,通知(NSNotification)介绍 这里所说的通知不是指发给用户看的通知消息,而是系统内部进行消息传递的通知.要介绍通知之前,我们需要先了解什么是观察者模式. 观察者模式 (Observer ...

  6. 小程序发送通知-可重复多次发送

    一.小程序发送订阅消息背景 发送永久订阅消息目前微信只支持集中行业:市政,金融,在线教育等,其他行业暂未开通 但是项目均不符合以上条件,想要实现发送永久订阅消息就需要使用公众号模板消息:公众号模板消息 ...

  7. Jenkins+Allure测试报告+飞书机器人发送通知

    Python微信订餐小程序课程视频 https://blog.csdn.net/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https ...

  8. Android发送通知——通知栏(Notification)

    Android发送通知--通知栏(Notification) 通知是指 Android 在您应用的界面之外显示的消息,旨在向用户提供提醒.来自他人的通信信息或您应用中的其他实时信息.在发出一条通知后, ...

  9. Grafana监控告警发送通知到钉钉群、邮件

    docker部署的grafana容器.主要是监控kolla部署下OpenStack的虚拟机和宿主机的状态警告. 设置相应的监控dashboard https://blog.csdn.net/danda ...

  10. 详解android高仿微信后台接受消息,发送通知,监测网络连接

    公司让我研究websocket,利用这个时间写了个仿微信的demo. 服务器端功能比较简单:转发给所有的client (类似与群聊) android端功能:service后台接受消息:broadcas ...

最新文章

  1. arcgis合并tif影像_微图影像地图导出拼接大图的参数说明
  2. 洛谷P1832 A+B Problem(再升级)
  3. 企业官网页面设计谨记三个要点!
  4. UITabBar,UINavigationBar的布局和隐藏问题
  5. go get国内解决办法汇总
  6. ios swift 实现饼状图进度条,swift环形进度条
  7. java会跳出problem_docs/java/concurrent/ConcurrencyProblem.md · wt1814/wt-note - Gitee.com
  8. 幼谈苹果新开发语言:Swift和苹果的用心
  9. 如何为网站添加百度统计功能
  10. linux管理员基础知识
  11. 求栈中元素个数算法_嵌入式必知基础算法(一)
  12. 任务接单平台源码自动挂机阅读文章挣钱系统
  13. MSP430单片机学习视频
  14. 通过isapi协议抓拍图片
  15. 遗传算法实现寻找函数最值
  16. 大学英语综合教程四 Unit 4 课文内容英译中 中英翻译
  17. Python批量处理jpg转换为bmp图片,告别手动转换,真爽,
  18. 处理极端情况:财务扩展和流式传输
  19. java去除图片水印的解决办法
  20. Python数据分析pygal填充数据到世界地图

热门文章

  1. 企业微信发送应用消息的实现
  2. Ubuntu18.04 安装 Mysql 5.7 问题
  3. Producer Flow Control 和 vmQueueCursor
  4. sql server 查询数据库所有的表名+字段
  5. PAT---数字分类
  6. Java 核心技术点之注解
  7. DataTable.select()
  8. 【实践】基于百度地图API实现的地图形式天气预报【一】
  9. [转帖]Mootools源码分析-23 -- Selectors-2
  10. Wss3入门(2):设置匿名访问包括匿名阅读和匿名评论,修改评论的字段等。