阻塞隊列(BlockingQueue)是一個支持兩個附加操作的隊列。這兩個附加的操作支持阻塞的插入和溢出方法。
支持阻塞的插入方法:當隊列滿時,隊列會阻塞插入元素的過程,直到隊列不滿。
支持阻塞的移除方法:當隊列空時,獲取元素的線程會等待隊列變為非空。
常用於生產者-消費者場景。
7個阻塞隊列:
ArrayBlockingQueue(數組結構組成的有界阻塞隊列)、
LinkedBlockingQueue(鏈表結構組成的有界阻塞隊列)、
PriorityBlockingQueue(支持優先級排序的無界阻塞隊列)、
DelayQueue(使用優先級隊列實現的無界阻塞隊列)、
SynchronousQueue(不存儲元素的的阻塞隊列)、
LinkedTransferQueue(鏈表結構組成的無界阻塞隊列)、
LinkedBlockingDeque(鏈表結構組成的雙向阻塞隊列)