SynchronousQueue的运用场景和意义?

问题描述

SynchronousQueue 它是一个对于元素来说空了才能存入,存在才能取出的队列,只保留一个元素在queue里。但是用处在哪里?如果替换成其它queue,比如ArrayBlockingQueue,会使得哪些事情做不到?

解决方案

首先,它也是blockingqueue的一个实现,内部采用的就是ArrayBlockingQueue的阻塞原语,所以在功能上完全可以用ArrayBlockingQueue替换之,但是SynchronousQueue 是轻量级的,SynchronousQueue 不具有任何内部容量,甚至不具有一的容量,我们可以用来在线程间安全的交换单一元素。所以功能比较单一,优势应该就在于轻量吧~
解决方案二:
目前还没经历过这样的场景。它的需求场景应该是这样的:消费者没拿走当前的产品,生产者是不能再给产品的。应该是为了保证消费者和生产者的节奏一致吧,其它的队列实际上有缓存的意思,比如说消费者在高峰期消费不了那么多,那么队列会缓存一部分产品,这样就不至于影响生产者的速度。

时间: 2025-01-21 03:41:53

SynchronousQueue的运用场景和意义?的相关文章

分析需求场景对产品设计的意义

需求场景是一种更接地气的分析和描述用户需求的方法(我个人偏爱"需求场景"这个词).它应该拥有这样的结构: "在某某时间(when),某某地点(where),周围出现了某些事物时(with what),特定类型的用户(who)萌发了某种欲望(desire),会想到通过某种手段(method)来满足欲望." 需求场景的意义 传统的软件开发流程中,产品经理/产品策划首先会提供一份功能列表.这种功能列表所使用的描述方式往往是以程序为导向的,比如"商品列表支持按照价

在产品设计过程中描述一个完整的需求场景

编者按]本文作者朱晨,供职腾讯CDC.对于交互设计师而言,描述应用场景是在对产品需求进行分析时最简单直接的阐述方式. 在文中,作者将应用场景描述为需求场景,这种讲法更加形象.因为对场景的描述就是一个分析用户需求的过程,解读这个过程可以更容易的对用户需求做出分解并从中找到吸引用户的关键. 需求场景是一种更接地气的分析和描述用户需求的方法(个人偏爱"需求场景"这个词).它应该拥有这样的结构: "在某某时间(when),某某地点(where),周围出现了某些事物时(with wha

谈谈应用层切面设计

AOP概要理解纠偏 说到AOP,这个东东现在已经不是一个新词汇了,我们拿一下百度词条来看看是下面的样子的: 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开

漫谈JVM热加载技术(一)---目前常见的解决方案

目前的Hot Reload方案 目前一般是容器(Web Container/Framework)才有能力做到热加载.因为通过自定义的ClassLoader实例来管理(bean/page/controller/configuration),如果这些文件有变化,立即创建一个新的ClassLoader实例来加载新的资源文件.例如:tomcat/jetty/Resin/.../SEAM/Grails 1.Hot deploy 应该称之为:热部署.热部署并不神秘,最暴力的热部署是自动重启当前应用的JVM.

2017 年全球十大突破技术:逼格很高很难懂

1.强化学习(Reinforcement Learning) 一种人工智能方法,能使计算机在没有明确指导的情况下像人一样自主学习.意义在于,假如机器不能够自主通过环境经验磨练技能,自动驾驶汽车以及其他自动化领域的进展速度将受到极大地限制. 2.360°自拍(The 360-Degree Selfie) 消费级360°全景相机,能够更真实的还原事件和场景.意义在于,能提供360°全景拍摄的廉价相机将开启摄影的新篇章,也将改变人们分享故事的方式. 3.基因疗法 2.0(Gene Therapy 2.

微信是什么,这个全民都在参与回答的问题

"微信是什么",这个全民都在参与回答的问题,在昨天的微信合作伙伴沟通会后答案越来越清晰.要找到答案,先来看看昨天到底微信都展现了哪些东西. 更强的连接能力:将一切人.物.钱.服务都连接起来 这通过最新开放的接口来实现,每一个接口背后都是一种新的连接能力.语音.图片识别.位置.支付.生成带参数的二维码等接口的开放,让人和物.物和物.物和钱.钱和服务.服务和人等等全部都连接再一起,不仅使连接的范围更广,也让连接的维度更多.在由物理世界和互联网世界共同构成的新世界里,一个个开放的接口是其中的

【巨头升级寡头】AI产业数据称王,GAN和迁移学习能否突围BAT垄断?

AI时代,数据为王让巨头越来越难以被打败 上周,谷歌和 CMU 的一项合作研究,为拥有大数据优势的技术巨头们带来了喜讯:在不调整现有算法.只是给模型多得多的数据的情况下,图像识别结果取得了较大提升. 这一波人工智能的兴起主要有三大因素推动--计算力.数据和算法.而谷歌和 CMU 的这项合作研究可能会将"数据"这一项进一步高亮显示. 据 Wired 报道,研究结果一方面印证了通过给模型喂食多得多的数据,同样的算法也能显著提升性能,另一方面,这也是对拥有海量数据的技术巨头的喜讯.无论是谷歌

跨语言之间的对抗博弈,该如何演绎?| 论文访谈间 #08

利用非平行双语语料构建双语词典是一项长期存在的跨语言任务.其实现过程一般需要跨语言信息(如种子双语词典)作为监督信号来建立双语词汇之间的翻译关系,但对于完全缺乏双语资源的小语种和专门领域来说,获取其跨语言信息十分困难,那么如何在不使用任何跨语言监督信号的情况下通过无监督方法构建双语词典呢?来自清华大学的张檬博士.刘洋老师.栾焕博老师和孙茂松老师发表在 ACL2017 上的论文"Adversarial Training for Unsupervised Bilingual Lexicon Indu

产品经理负责制:产品经理负责制的意义

文章描述:产品经理负责制的诱惑与窘迫. 一 既然是谈产品经理"负责制",就应如"农田承包经营责任制"或者"厂长经理负责制"一样,产品经理是对最后的经营成果负责.农民对自己承包的责任田经营成果负责,只要给国家交足了公粮,田里想种什么.如何种.种多少之类的问题,都是由农民自己畴划.主导.决策.安排的:厂长经理从董事会或者国资委获得企业的经营权,确定了企业的经营目标与方向,有权自行安排人事.产品.财务开支等事项,才能对最后经营成果负责.因而产品经理负责