前言
最近并发编程用到就简单做下笔记
何为双向阻塞队列
- 队列 一种常见的先进先出,后进后出的数据结构
- 阻塞队列 当队列为空的时候,从队列中获取元素的操作将会被阻塞;当队列是满的时候,往队列里添加元素的操作会被阻塞
-
双向队列 头部和尾部都可以进行插入和删除的操作
以上3个特性和起来就是双向阻塞队列,因为2边都可以进行操作,所以在多线程使用时就会好上一些
构造方法
public LinkedBlockingDeque() //默认容量为Integer.MAX_VALUE
public LinkedBlockingDeque(int capacity) //指定容量
public LinkedBlockingDeque(Collection<? extends E> c)
用法
putFirst() //指定的元素插入队列的开头
putLast() // 指定的元素插入到队列的末尾
pollFirst() //获取并移除此队列的首节点,若不存在,则返回null
pollLast() //获取并移除此双端队列的尾节点,若不存在,则返回null
takeFirst() //检索并删除此deque的第一个元素,如有必要等待,直到元素可用
takeLast() //检索并删除此deque的最后一个元素,如有必要等待,直到元素可用。
网友评论