簡體   English   中英

.net 4.0並發隊列字典

[英].net 4.0 concurrent queue dictionary

我想在.NET 4.0中使用新的並發集合來解決以下問題。

我想要的基本數據結構是生產者消費者隊列,將有一個消費者和多個生產者。

A,B,C,D,E類型的項目將添加到此隊列中。 類型A,B,C的項目以正常方式添加到隊列中並按順序處理。

但是,D或E類型的項目只能存在於隊列零或一次。 如果要添加其中一個並且已經存在另一個尚未處理的相同類型,那么這應該更新隊列中的其他一個就地。 更新后隊列位置不會改變(即不會轉到隊列的后面)。

哪個.NET 4.0類最適合這個?

我認為.net 4中沒有這樣的(優先級)隊列可以支持原子AddOrUpdate操作。 只有ConcurrentDictionary支持此功能,但如果您需要保留訂單,則不適用。

所以你的選擇可能是使用兩者的某種組合。

但是,請注意,只要對它們進行組合操作,就會失去並發結構的安全性; 你必須自己實現鎖定機制(在這里查看這種情況的一個例子: A .Net4 Gem:The ConcurrentDictionary - Tips&Tricks )。

第二個選項是谷歌一些第三方實施。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM