1、阻塞隊列
方法/處理方式 | 拋出異常 | 返回特殊值 | 一直阻塞 | 超時退出 |
插入方法 | add(e) | offer(e) | put(e) | offer(e, time, unit) |
移除方法 | remove(e) | poll() | take() | poll(time, unit) |
檢查方法 | element() | peek() | 不可以 | 不可以 |
2、示例代碼
public class BlockQueue {
public static void main(String[] args) {
/**
* 數組結構組成的有界阻塞隊列
*/
ArrayBlockingQueue<Integer> arrayBlockingQueue = new ArrayBlockingQueue<>(5);
/**
* 鏈表結構組成的有界阻塞隊列
*/
LinkedBlockingQueue<Integer> linkedBlockingQueue = new LinkedBlockingQueue<>();
/**
* 支持優先級排序的有界阻塞隊列
*/
PriorityBlockingQueue<Integer> priorityBlockingQueue = new PriorityBlockingQueue<>();
/**
* 使用優先級隊列實現的無界阻塞隊列
*/
DelayQueue delayQueue = new DelayQueue<>();
/**
* 不存儲元素的阻塞隊列
*/
SynchronousQueue<Integer> synchronizedQueue = new SynchronousQueue<>();
/**
* 鏈表結構組成的無界阻塞隊列
*/
LinkedTransferQueue<Integer> linkedTransferQueue = new LinkedTransferQueue<>();
/**
* 鏈表結構組成的雙向阻塞隊列
*/
LinkedBlockingDeque<Integer> linkedBlockingDeque = new LinkedBlockingDeque<>();
}
}