ArrayBlockingQueue 和 LinkedBlockingQueue 的區別


阻塞佇列介面是 Java.util.concurrent 包的一部分。阻塞佇列專門用於生產者消費者佇列,還支援集合。該介面分為四部分方法,以支援可以在佇列上執行的所有型別操作。它不接受 null 鍵。ArrayBlockingQueue 和 LinkedBlockingQueue 都實現了阻塞佇列介面

ArrayBlockingQueue 和 LinkedBlockingQueue 都按照 FIFO 順序儲存元素。在這兩個佇列中,元素插入始終發生在佇列的尾部,而元素移除始終發生在佇列的頭。 

序號要點ArrayBlockingQueueLinkedBlockingQueue
1
基礎
它由陣列支援
它由連結串列支援
2
有界
它是有界陣列佇列。因此,一旦建立,容量就不能更改
它是無界佇列
3
吞吐量
它的吞吐量低於連結佇列佇列
連結佇列的吞吐量高於基於陣列的佇列
4.

它使用單鎖雙條件演算法
它有用於將元素插入佇列的 putLock 和用於從佇列中移除元素的 takeLock

更新日期: 2020-1-27

391 次瀏覽

職業生涯準備就緒

完成課程以獲得認證

開始
廣告