LinkedBlockingQueue

LinkedBlockingQueue

LinkedBlockingQueue是一个单向链表实现的阻塞队列。该队列按 FIFO(先进先出)排序元素,新元素插入到队列的尾部,并且队列获取操作会获得位于队列头部的元素。LinkedBlockingQueue还是可选容量的(防止过度膨胀),即可以指定队列的容量。如果不指定,默认容量大小等于Integer.MAX_VALUE。

数据结构

LinkedBlockingQueue

常用方法

一、添加元素

1、add 方法:如果队列已满,报java.lang.IllegalStateException: Queue full 错误

2、offer 方法:如果队列已满,程序正常运行,只是不再新增元素

3、put 方法:如果队列已满,阻塞

二、取元素

1、poll 方法:弹出队顶元素,队列为空时返回null

2、peek 方法:返回队列顶元素,但顶元素不弹出,队列为空时返回null

3、take 方法:当队列为空,阻塞

上一篇:用Java如何设计一个阻塞队列,然后说说ArrayBlockingQueue和LinkedBlockingQueue


下一篇:jvm内存溢出原因分析