幾種在併發程式設計中使用的集合

2021-06-27 23:38:06 字數 808 閱讀 4292

不可變集合

不會經常修改,可以被多個執行緒安全訪問的集合。

特點:不可變集合的乙個例項是永遠不改變的。

因為不會改變,所以絕對是執行緒安全的

對不可變集合使用修改方法時,返回修改後的集合

例子:var dictionary = immutabledictionary.empty;

dictionary  = dictionary.add(10,"ten");

dictionary  = dictionary.add(21,"twenty-one");

新增完元素後會返回乙個新的例項,所以對同乙個例項來說,多個執行緒訪問時執行緒安全的。

執行緒安全集合

多個執行緒同時讀寫仍能保持同步

var dictionary = new concurrentdictionary();

var newvalue = dictionary.addorupdate(0, key => "zero",

(key, oldvalue) => "zero");

阻塞佇列 blockingcollection

屬於生產者消費者佇列,既生產者執行緒只放入資料,消費者執行緒只取資料

這種佇列的問題:

1.消費者通過getconsumingenumerable()方法取得佇列中資料的列舉,但是如果有多個消費者,每個item只會給乙個消費者

2.如果生產者生產資料的速度大於消費者消費資料的速度,就需要對佇列進行限流

8 1 3 在 C 中使用函式集合

8.1.3 在 c 中使用函式集合 考慮戶貸款端時,我們想要執行所有測試,並統計返回 true 的測試數 指高風險 如果數量為零個或一,程式將建議貸款。正常的命令式解決方案是,宣告乙個變數,使用 foreach 語句列舉測試。在迴圈中體,執行測試,如果它返回 true,就增加變數。這可以更優雅地實現...

在 Python 中使用集合的5個層次

引言 集合是元素唯一的無序集合。它是電腦科學中最核心的資料結構之一。像其他程式語言一樣,python也具有集合及其操作函式的內建實現。1.了解集合的基本特徵 python中集合的性質由數學中的集合論決定。其基本特徵如下 集合中的元素是無序的 集合不能包含重複的元素 集合上有3種基本運算 並運算 交運...

在HTML中使用CSS樣式的幾種方式

就是在html的標籤中使用style屬性來設定css樣式 格式 被修飾的內容style color orange font size 18px 在html中如何使用css樣式p 特點 僅作用於本標籤。就是在head標籤中使用標籤來設定css樣式 格式 特點 作用於當前整個頁面 3.1 推薦 就是在h...