文档章节

BlockingQueue

百花
 百花
发布于 2017/02/20 12:05
字数 378
阅读 3
收藏 0

特点

  • BlockingQueue 本身是一个接口,定义了阻塞队列的规范。

  • BlockingQueue 在Queue的基础上额外支持两个(种)操作

  • 1)在检索一个队列的时候,如果队列为空,则检索方法被阻塞,直到有元素插入进来。

  • 2)在插入一个元素的时候,如果队列不能插入(比如容量满了),则插入方法被阻塞,直到可以插入了。

  • BlockingQueue为当前不能被满足并即刻执行,但是将来一段时间可能被满足并执行的方法提供了四种形式:抛出异常、返回false或者null、永久等待、等待并在一段时间内超时

输入图片说明

  • BlockingQueue 不接受null 值插入。
  • BlockingQueue 可以指定容量,当超过容量的时候,任何插入动作都会被阻塞(或者四种形式中的其他一种)
  • BlockingQueue 主要用于生产者消费者队列。
  • BlockingQueue 的remove(x)这样的方法不是很有效率,可以偶尔使用一下。
  • BlockingQueue 是线程安全的,所有方法(除了批量方法)都通过内部锁或者其他形式的并发控制达到原子性。(BlockingQueue 在多生产者和多消费者的并发下是线程安全的)
  • BlockingQueue 本质上并不提供类似 close 或者shutdown 等方法来停止队列,生产者消费者队列场景下,可以通过生产一个poison的内容给消费者,让其识别并作为关闭逻辑。

© 著作权归作者所有

上一篇: DelayQueue
下一篇: Queue
百花
粉丝 1
博文 67
码字总数 25011
作品 0
海淀
架构师
私信 提问

暂无文章

iOS Xcode升级包地址(感谢大神)

下载地址:DeviceSupport

_____1____
30分钟前
6
0
Qt编写自定义控件71-圆弧进度条

一、前言 现在web形式的图表框架非常流行,国产代表就是echart,本人用过几次,三个字屌爆了来形容,非常强大,而且易用性也非常棒,还是开源免费的,使用起来不要太爽,内置的各种图表和仪表...

飞扬青云
30分钟前
4
0
润乾报表与 ActiveReport JS 功能对比

简介 润乾报表是用于报表制作的大型企业级报表软件,核心特点在于开创性地提出了非线性报表数学模型,采用了革命性的多源关联分片、不规则分组、自由格间运算、行列对称等技术,使得复杂报表...

泡泡糖儿
42分钟前
5
0
【1015】LNMP架构二

【1015】LNMP架构二 三、PHP安装 PHP安装和LAMP安装PHP方法有差别,需要开启php-fpm服务 1、下载PHP7至/usr/local/src/ 切换目录:cd /usr/local/src 2、解压缩 tar -jxvf php-7.3.0.tar.gz...

飞翔的竹蜻蜓
今天
5
0
浅谈Visitor访问者模式

一、前言 什么叫访问,如果大家学过数据结构,对于这点就很清晰了,遍历就是访问的一般形式,单独读取一个元素进行相应的处理也叫作访问,读取到想要查看的内容+对其进行处理就叫作访问,那么...

青衣霓裳
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部