多线程的阻塞队列

阻塞队列 (Blocking Queue,和List同级的接口)

Blocking Queue有七种,我们只需要记住以下三种就足够了。
ArrayBlockingQueue:有数组结构构成的有界阻塞队列
LinkedBlockingQueue:由链表结构组成的有界阻塞队列。(但大小默认值为Integer.MAX_VALUE,所以你可以理解为无界)
SynchronousQueue:不存储元素的阻塞队列,即单个元素的阻塞队列。(可以理解为奢侈品定制,一个人定产品,我在生产,定一个产一个)
下图是Blocking Queue 核心方法
Blocking Queue 核心方法
抛异常组:
add(e):当Blocking Queue满时,再往队列里add元素会抛出IllegalStateException:Queue full
remove():当Blocking Queue空时,会抛NoSuchElementException
element():返回Blocking Queue的队头元素

返回特殊值:
offer(e):当插入Blocking Queue,成功true失败false.
poll():移除成功返回元素值,失败返回null
peek():返回Blocking Queue的队头元素

阻塞:最常用
put():当Blocking Queue满,还继续往里put元素时,队列会一直阻塞直到put成功或者响应中断退出。
take():当Blocking Queue空,还take元素,队列一直阻塞直到有队列有元素可被take.

超时退出:
offer(e,time,unit):
poll(time,unit):
在返回特殊值的情况前会等待time长时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值