阻塞队列 (Blocking Queue,和List同级的接口)
Blocking Queue有七种,我们只需要记住以下三种就足够了。
ArrayBlockingQueue:有数组结构构成的有界阻塞队列
LinkedBlockingQueue:由链表结构组成的有界阻塞队列。(但大小默认值为Integer.MAX_VALUE,所以你可以理解为无界)
SynchronousQueue:不存储元素的阻塞队列,即单个元素的阻塞队列。(可以理解为奢侈品定制,一个人定产品,我在生产,定一个产一个)
下图是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长时间。
4648

被折叠的 条评论
为什么被折叠?



