首页 > 其他分享 >SynchronousQueue相关介绍

SynchronousQueue相关介绍

时间:2023-05-16 15:12:51浏览次数:52  
标签:SynchronousQueue 阻塞 介绍 队列 线程 操作 put 相关

SynchronousQueue是一个没有容量的队列,它的put操作和take操作之间是相互依赖的,即put操作必须在take操作准备好时才能将元素“推”过去,反之take操作也必须在put操作准备推元素的时候才能获取到元素。

 

同步队列:SynchronousQueue,零容量的SynchronousQueue,一进一出,避免队列里缓冲数据,这样在系统异常关闭时,就能排除因为阻塞队列丢消息的可能

SynchronousQueue没有容量,是无缓冲等待队列,是一个不存储元素的阻塞队列。

使用SynchronousQueue阻塞队列一般要求maximumPoolSizes为无界(Integer.MAX_VALUE),避免线程拒绝执行操作。

风险:机器线程耗尽,导致宕机

 

 

有人可能会说只有1个容量大小的BlockingQueue也能实现该操作,但是它们之间有着本质的不同:

1、SynchronousQueue在put时,如果另一个线程没有执行take操作,put线程会一直阻塞;而BlockingQueue在put一个元素时,第一次是不会阻塞的,只有第二次因为容量满了put操作才阻塞,而SynchronousQueue在第一次就阻塞;

2、从第1点就可以看出SynchronousQueue容量为0,而BlockingQueue至少有容纳1个元素的空间。

 

 

SynchronousQueue

极大好处是:生产者无法以快过消费者消费的速度来产生消息。

参考文献

 

是一个手递手的操作

参考文献

 

源码分析好博文

JDK1.8源码分析之SynchronousQueue

SynchronousQueue(同步队列)

老猿说说-SynchronousQueue

SynchronousQueue理解

 

线程池相关的好文章

Java-线程池专题 (美团面试题)

标签:SynchronousQueue,阻塞,介绍,队列,线程,操作,put,相关
From: https://www.cnblogs.com/r1-12king/p/17405700.html

相关文章

  • 知行之桥EDI系统2023版功能介绍——概览页面
    登录知行之桥EDI系统2023版,即可看到概览页面。默认情况下,会显示过去7天的各项指标。用户可以在页面右上角:显示过去的数据 下拉列表中手动选择需要的时间段,如:24小时、3天、7天等。关键指标的自定义配置概览页面具有灵活的可选性,用户可以对关键指标部分进行自定义的搭配。可以从......
  • 永磁同步电机(凸极)_变交轴弱磁控制 资料包含仿真和相关文献
    永磁同步电机(凸极)_变交轴弱磁控制资料包含仿真和相关文献资料,赠送仿真基础模型dq轴电流跟踪效果不佳,可在此基础上做改进ID:6810683794167088......
  • crontab工具使用介绍
    在Linux系统中,我们可以通过crontab工具来执行定时任务。它可以帮助我们在特定的时间间隔内执行特定的命令或程序,这对于自动化运维、备份或数据处理等任务非常有帮助。使用crontab工具需要了解以下几个部分:1.crontab格式crontab格式由6个字段组成,它们分别是:分钟(0-59)小......
  • linux相关
    目录结构这里是先规划好不同的功能模块,程序按这个结构,分散放进去。window也有这方面,但基本是按盘符,然后都放在自己的目录为主。这里好像是磁盘先分区。然后挂载上来一个设备符号,再设置目录放在哪个分区设备?usr是UnixSystemResource不是User的简写/usr/bin系统预装的可执行程......
  • 介绍Xmappr
    好像在2010年一月初的时候刚刚发布了0.9版本,这个框架的主要作用就是用来进行读取配置文件(xml)的,但是和以前我们常用的有所不同,他是直接用java的对象和xml进行映射,在我们以前读取xml的时候,哪怕是使用了jdom,dom4j,xpath等的相关API,获得字段仍然失去了他本来的属性,比如说他之前是一个i......
  • springboot 整合webservice 相关说明
    1.环境依赖jdk8,springboot2.3.12.release,cxf版本需要根据springboot版本修改,方法:查看springboot版本的发布日期,然后根据日期找相近的两个版本<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><versi......
  • 【AGC】接入分发和运营分析相关问题
     【关键字】AGC、分发分析、运营分析 【问题描述】开发者反馈在应用中接入AGC分发分析、运营分析、事件分析时遇到了一些问题。具体如下所述:1、事件分析里面的埋点事件参数和参数值是否有数量限制。2、埋点统计是否是收费项目,是的话是否有免费额度。3、分析服务中是否有a......
  • 路灯漏电实例与解决方案介绍
    安科瑞虞佳豪近日,市民梅先生拨打安顺12345热线反映,称前段时间,西秀区北山社区服务中心旁的一处路灯漏电,导致自己家的小狗被电击。为了防止触电事故的发生,梅先生希望相关部门尽快修缮路灯问题。市民梅涛:晚上我和朋友去溜狗,走在北山社区那里,那个路灯正好是漏电,等于是旁边有一......
  • 原型工具介绍
     原型设计工具介绍原型设计工具是一种用于创建产品原型的软件工具,它们可以帮助设计师和开发人员快速创建出可交互的、高保真度的原型,以便更好地理解和验证产品需求。原型设计工具的重要性在于它们能够提高工作效率,明确产品需求,降低风险并促进协作。通过使用这些工具,设计师......
  • Android NDK开发介绍
    一、JNI基础介绍JNIistheJavaNativeInterface.Itdefinesawayformanagedcode(writtenintheJavaprogramminglanguage)tointeractwithnativecode(writteninC/C++).JNI(Java本地接口):定义一种方式,使得Java代码能与C代码或者DynamicSharedLibraries(动态共......