并发_006 容器 队列

Posted hpzhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了并发_006 容器 队列相关的知识,希望对你有一定的参考价值。

目录

  • 非阻塞队列
  • 阻塞队列
  • 双端队列

非阻塞队列(AbstractQueue)

队列介绍

  1 ConcurrentLinkedQueue 先进先出队列

  2 PriorityQueue 非并发的优先队列

非阻塞队列方法

  1 add(E e) 将元素e插入队列末尾,如果插入成功,返回true;如果插入失败(队列已满),则会抛出异常 

  2 remove() 移除队首元素,若移除成功,则返回true,如果移除失败(队列为空),则会抛出异常

  3 offer(E e) 将元素e插入队列末尾,如果插入成功,则返回true,则返回true,如果插入失败(队列已满),则返回false

  4 poll() 移除并获取首元素,若成功,则返回首元素,否则返回null

  5 peek() 获取队首元素,若成功,则返回首元素,否则返回null

 

阻塞队列(BlockingQueue)

队列介绍

  1 ArrayBlockingQueue 一个由数组支持的有界队列

  2 LinkedBlockingQueue 一个由链接节点支持的可选有界队列

  3 PriorityBlockingQueue 一个由优先级堆支持的无界优先级队列

  4 DelayQueue 一个由优先级堆支持的、基于时间的调度队列

  5 SynchronousQueue 一个利用 BlockingQueue 接口的简单聚集(rendezvous)机制

阻塞队列方法

  1 put(E e) 队尾插入元素,如果队列满,则等待

  2 take() 从队首取元素,如果队列为空,则等待

  3 offer(E e,long timeout, TimeUnit unit) 队尾存入元素,如果队列满,则等待一定的时间,当时间期限达到时,如果还没有插入成功,则返回false;否则返回true

  4 poll(long timeout, TimeUnit unit) 队首取元素,如果队列空,则等待一定的时间,当时间期限达到时,如果取到,则返回null;否则返回取得的元素       

以上是关于并发_006 容器 队列的主要内容,如果未能解决你的问题,请参考以下文章

并发编程: 同步容器并发容器阻塞队列双端队列

并发队列

并发容器 - 各种队列

并发容器阻塞队列详细介绍

Day298.并发容器&并发队列 -Juc

java并发容器类