Java常见的队列

发布时间 2023-08-23 09:47:57作者: zhangliangddq

队列分类

  1. 阻塞队列
    阻塞队列要实现接口:BlockingQueue
  2. 非阻塞队列

LinkedBlockingQueue常用方法

  1. LinkedBlockingQueue是是一个阻塞的线程安全的队列,底层采用链表实现。遵循FIFO(先进先出)。

  2. LinkedBlockingQueue添加元素的方法有三个:add、put、offer。且都是向队列尾部添加元素。
    add:方法在添加元素的时候,若超出了度列的长度会直接抛出异常。
    offer:方法添加元素,如果队列已满,直接返回false。
    put:方法添加元素,如果队列已满,会阻塞直到有空间可以放。

  3. LinkedBlockingQueue移除元素的方法有三个:poll、remove、take。且都是从队列中取出头部元素并从队列中删除。
    poll: 若队列为空,返回null。
    take:若队列为空,发生阻塞,等待到有元素。
    remove::若队列为空,抛出NoSuchElementException异常。

  4. LinkedBlockingQueue可以在构造函数的参数中指定大小,若没有指定大小,则默认大小为Integer.MAX_VALUE。>
    LinkedBlockingQueue的大小不可为null。