Queue的幾種容器

2021-07-28 00:02:38 字數 556 閱讀 3153

concurrentlinkedqueue是乙個適用於高併發場景下的佇列,通過無鎖的方式實現高併發狀態下的高效能,該容器的效能好於blocjingqueue,是乙個基於鏈結節點的無界線程安全佇列,先進先出,頭最先加入,尾最近加入,佇列不允許null元素。

**重點內容**concurrentlinkedqueue重要方法

add(),offer()都是加入元素的方法,沒有區別。

poll()和peek()都是取頭元素節點,區別在於前者會刪除元素後者不會。

重點內容另外三種適應於不同場景的阻塞式佇列

arrayblockingqueue是乙個定長陣列,讀寫沒有分離,長度需要定義,可以指定先進先出或者先進後出,也叫有界佇列。適用於超高併發場景,適用於極多場景。

linkedblockingqueue是乙個無界陣列,讀寫分離,從而實現生產者和消費者的操作完全並行執行。適用於高併發操作但是最高併發數不會超出伺服器的限制的場景。

synchronousqueue是一種沒有緩衝的虛擬佇列,生產者產生的資料會直接被消費者獲取並且消費,適用於低併發量的需求場景。

c stack容器和queue容器

define crt secure no warnings include include include using namespace std stack翻譯為棧,棧容器,先進後出 棧不能遍歷,不支援隨機訪問,只能通過top從棧頂獲取和刪除元素 不提供迭代器,不能遍歷,不支援隨機訪問 queue...

stack容器和queue容器

stack容器基本概念 stack是一種先進後出 first in last out,filo 的資料結構,它只有乙個出口,stack容器允許新增元素,移除元素,取得棧頂元素,但是除了最頂端外,沒有任何其他方法可以訪問stack的其他元素,換言之,stack不允許有遍歷行為。有元素推入棧的操作成為p...

stack 容器與 queue 容器入門

歡迎前往我的個人部落格閱讀原文。學習了五種常用的容器,還剩下 stack 堆疊容器和 queue 佇列容器沒有學習。今天就來學習這兩種容器。stack 堆疊是乙個後進先出 last in first out,lifo 的線性表,插入和刪除元素都只能在表的一端進行。插入元素的一端稱為棧頂 stack ...