ArrayBlockingQueue和ArrayDeque的區別


ArrayBlockingQueue以FIFO(先進先出)的順序儲存元素。元素的插入始終發生在佇列的尾部,元素的刪除始終發生在佇列的頭部。它是執行緒安全的,並且是有界陣列佇列,因此一旦建立,容量就不能更改。它是阻塞佇列的實現。

根據Java文件:

Deque介面的可調整大小的陣列實現。ArrayDeque沒有容量限制;它們根據需要增長以支援使用。它們不是執行緒安全的;在沒有外部同步的情況下,它們不支援多個執行緒的併發訪問。不允許使用空元素。當用作堆疊時,此類可能比Stack更快,當用作佇列時,比LinkedList更快。

序號關鍵點ArrayBlockingQueueArrayDeque
1
基礎
它實現了BlockingQueue介面
它實現了Deque介面
2有界性
它是具有邊界限制的陣列佇列。因此,一旦建立,容量就不能更改。
它是Deque介面的可調整大小的陣列實現
3執行緒安全
它是執行緒安全的
它不是執行緒安全的
4

插入/刪除
元素的插入始終發生在佇列的尾部,元素的刪除始終發生在佇列的頭部。
它支援在兩端插入和刪除元素

更新於:2020年1月27日

389 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.