BlockingQueue | Bounded | add | offer | put | remove | poll | element | peek | take | transfer |
---|---|---|---|---|---|---|---|---|---|---|
ArrayBlockingQueue | Y | 1.成功 return true 2.失败 抛出异常 | 1.成功 return true 2.失败 return false | 如果队列已满,则会阻塞 | 移除头部元素,如果为null则会抛出异常 | 移除头部元素并返回 | 获取头部元素,如果是null抛异常,并不会删除元素 | 获取头部元素,并不会删除元素 | null | null |
PriorityBlockingQueue | N | 同offer | 成功返回true,绝不返回false,除非内存溢出 | 同offer | 移除头部元素,如果为Null则会抛出异常 | 同上 | 同上 | 同上 | null | null |
LinkedBlockingQueue | Optional | 1.成功return true 2.失败 抛出异常 | 1.成功 return true 2.失败 return false | 如果队列已满,则会阻塞 | 移除头部元素,如果为Null则会抛出异常 | 同上 | 同上 | 同上 | ||
LinkedBlockingDeque | Optional | 同addLast | ||||||||
SynchronousQueue | Y | 1.成功 return true 2.失败 抛出异常 | 如果没有线程接收,返回false | 阻塞知道另外一个线程接受 | 移除头部元素,如果为Null则会抛出异常 | 同上 | 同上 | |||
DelayQueue | N | 同offer如果是false抛异常 | 尾部插入元素,如果为null抛异常 | 同offer | 移除头部元素,如果为null则会 | |||||
LinkedTransferQueue | N | 在尾部插入元素,永远返回true | 同add | 同add | 移除头部元素并返回 |
网友评论