队列分类
- 阻塞队列
阻塞队列要实现接口:BlockingQueue - 非阻塞队列
LinkedBlockingQueue常用方法
-
LinkedBlockingQueue是是一个阻塞的线程安全的队列,底层采用链表实现。遵循FIFO(先进先出)。
-
LinkedBlockingQueue添加元素的方法有三个:add、put、offer。且都是向队列尾部添加元素。
add:方法在添加元素的时候,若超出了度列的长度会直接抛出异常。
offer:方法添加元素,如果队列已满,直接返回false。
put:方法添加元素,如果队列已满,会阻塞直到有空间可以放。 -
LinkedBlockingQueue移除元素的方法有三个:poll、remove、take。且都是从队列中取出头部元素并从队列中删除。
poll: 若队列为空,返回null。
take:若队列为空,发生阻塞,等待到有元素。
remove::若队列为空,抛出NoSuchElementException异常。 -
LinkedBlockingQueue可以在构造函数的参数中指定大小,若没有指定大小,则默认大小为Integer.MAX_VALUE。>
LinkedBlockingQueue的大小不可为null。