并发_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 容器 队列的主要内容,如果未能解决你的问题,请参考以下文章