首页 > 其他分享 >通信工具类countdownlatch和cyclicbarrier

通信工具类countdownlatch和cyclicbarrier

时间:2024-02-04 16:56:12浏览次数:22  
标签:调用 初始值 通信 屏障 线程 countdownlatch cyclicbarrier

作用
semaphore 限制线程数量
exchanger 两个线程交换数据
countdownlatch 递减屏障,线程等待直到计数器减为0时开始工作
cyclicbarrier 循环屏障,等屏障的线程数达到初始化值时,执行自定义的任务
phaser 增强的cyclicbarrier

countdownlatch和cyclicbarrier区别
countdownlatch:递减屏障,调用构造方法时指定初始值count,这个初始值其实是父类AQS维护的一个private volatile int state类型的共享变量,这个变量在使用countdownlatch的多个线程间共享,且volatile关键字保证了该变量修改可见性,它只能设置一次,调用countdownlatch.await()方法的线程需要闭锁等待初始值减少到0时(调用countdown()方法递减state变量值),才可以继续执行。
cyclicbarrier:循环屏障,调用构造方法时指定初始值parties和自定义任务,初始值设置后,可以通过reset()方法重置为初始值,当循环屏障中的线程数等于parties(实际上是调用await()方法递减,直到初始值为0)时,触发自定义任务执行,本质上基于Lock + Condition实现的等待/通知模式。

标签:调用,初始值,通信,屏障,线程,countdownlatch,cyclicbarrier
From: https://www.cnblogs.com/yyz0225/p/18006462

相关文章

  • 使用CAN通信遇到的一些问题汇总
    由于我当时调试的时候,没有多余的板子来做CAN对端。在单端CAN调试发送信息时遇到过下面几种问题:1.CAN_ESR=0x03(ACK错误)2. CAN_ESR=0x04(隐性位错误)3. CAN_ESR=0x05(显性位错误) 后来使用回环测试,进行自发自收,排除程序本身的问题。回环测试的方法有两种,一种是你在配置CAN的......
  • CS 登陆通信流程分析
    0x01密码校验 启动TeamServer后,会创建SecureServerSocket对象并且循环调用acceptAndAuthenticate方法等待Controller连接在接收到信息并验证成功以后,才会去调用clientAuthenticated方法来线程执行ManageUser以处理与Controller的信息当Controller在点击Connec......
  • Java并发基础:CountDownLatch全面解析!
    内容概要CountDownLatch的优点在于能够简洁高效地协调多个线程的执行顺序,确保一组线程都完成后才触发其他线程的执行,适用于资源加载、任务初始化等场景。它提供了清晰的等待/通知机制,易于理解和使用,是提升多线程程序性能和可靠性的重要工具。核心概念CountDownLatch是java.util......
  • Linux进程通信-POSIX IPC
    前言LinuxPOSIXIPC的可移植性是不如SystemVIPC的,但是我们只用Linux,并且内核版本高于2.6.6的话就不存在该问题了。也因为POSIXIPC出现的比较晚,借鉴了systemVIPC的长处,规避其短处,使得POSIXIPC的接口更易用。进程间通信的手段很多,除了消息队列、信号量、共享内存,还有信号、so......
  • H3C S6850交换机端口及vlan的设置实现不同vlan之间相互通信
    本次S6850交换机配置采用H3CCloudLab软件进行模拟,网络拓扑图如下:其中S6850_2交换机作为二层交换机使用,S6850_1交换机作为三层交换机使用,PC_3vlan划分为vlan10,IP地址156.9.150.1、子网掩码为255.255.255.0、网关156.9.150.254,PC_4vlan划分为vlan20IP地址156.9.151.1、子网掩......
  • js处理事件:异步处理事件与线程,使用队列按序执行,事件广播,事件bus,事件监听,变量监听,动态
    js处理事件:异步处理事件与线程,使用队列按序执行,事件广播,事件bus,事件监听,变量监听,动态执行,父子通信在Vue3中,你可以使用以下方法来处理异步事件、线程、队列执行、事件广播、事件总线、事件监听、变量监听、动态执行和父子通信:1.异步处理事件:可以使用async/await或Promise......
  • OPC/MQTT工业通信软件OPLink
    OPLink是上海泗博自主研发的基于OPC数据采集及转发,OPC数据到MQTT通信的产品。它是基于上海泗博多年的OPC应用经验和工业通信产品的开发背景,推出的OPC/MQTT工业通信软件。软件设计简洁、实用、稳定。同时,OPLink还具备与KepwareLinkMaster相似的数据转发功能,可实现PLC设备间的自主......
  • Java并发基础:CyclicBarrier全面解析!
    内容摘要CyclicBarrier的优点在于实现了线程间的相互等待与协同,确保所有线程在达到预定屏障点后才能继续执行,它支持屏障的重复使用,非常适合多轮次的任务同步,此外,CyclicBarrier还允许在屏障点执行特定操作,为复杂的多线程协作提供了便利。核心概念业务场景CyclicBarrier允许一组......
  • 深入浅出Java多线程(五):线程间通信
    引言大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第五篇内容:线程间通信。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!!在现代编程实践中,多线程技术是提高程序并发性能、优化系统资源利用率的关键手段。Java作为主流的多线程支持语言,不仅提供了丰富的......
  • BOSHIDA DC电源模块在通信设备中的应用与优化
    BOSHIDADC电源模块在通信设备中的应用与优化DC电源模块在通信设备中的应用主要有以下几个方面: 1.电源供应:通信设备需要稳定可靠的电源供应,以保证设备的正常运行。DC电源模块可作为设备的主要电源或备用电源,提供稳定的直流电压和电流。2.电池充放电管理:通信设备往往需要配......