概念
支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。
支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空。
常用队列
ArrayBlockingQueue:一个由数组结构组成的有界阻塞队列
读锁和写锁公用一个锁,直接操作枚举对象,必须初始化队列大小,使用可重入锁来实现公平锁特性
LinkedBlockingQueue:一个由链表结构组成的有界阻塞队列。
读锁和写锁是分开的,将枚举对象包装为Node<E>才可以进行操作,可以不指定队列大小,默认是 Integer.MAX_VALUE
PriorityBlockingQueue:一个支持优先级排序的无界阻塞队列
DelayQueue:一个使用优先级队列实现的无界阻塞队列
SynchronousQueue:一个不存储元素的阻塞队列
每一个put操作之后,必须跟着get操作,吞吐量较高
LinkedTransferQueue:一个由链表结构组成的无界阻塞队列
CAS
LinkedBlockingDeque:一个由链表结构组成的双向阻塞队列