ArrayBlockingQueue和ArrayDeque的區別
ArrayBlockingQueue以FIFO(先進先出)的順序儲存元素。元素的插入始終發生在佇列的尾部,元素的刪除始終發生在佇列的頭部。它是執行緒安全的,並且是有界陣列佇列,因此一旦建立,容量就不能更改。它是阻塞佇列的實現。
根據Java文件:
Deque介面的可調整大小的陣列實現。ArrayDeque沒有容量限制;它們根據需要增長以支援使用。它們不是執行緒安全的;在沒有外部同步的情況下,它們不支援多個執行緒的併發訪問。不允許使用空元素。當用作堆疊時,此類可能比Stack更快,當用作佇列時,比LinkedList更快。
| 序號 | 關鍵點 | ArrayBlockingQueue | ArrayDeque |
|---|---|---|---|
| 1 | 基礎 | 它實現了BlockingQueue介面 | 它實現了Deque介面 |
| 2 | 有界性 | 它是具有邊界限制的陣列佇列。因此,一旦建立,容量就不能更改。 | 它是Deque介面的可調整大小的陣列實現 |
| 3 | 執行緒安全 | 它是執行緒安全的 | 它不是執行緒安全的 |
| 4 | 插入/刪除 | 元素的插入始終發生在佇列的尾部,元素的刪除始終發生在佇列的頭部。 | 它支援在兩端插入和刪除元素 |
廣告
資料結構
網路
關係型資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP