用 C# 編寫執行緒安全的程式碼集合
.NET Framework 4 引入了 System.Collections.Concurrent 名稱空間。它有一些執行緒安全且可擴充套件的集合類。這些集合被稱為併發集合,因為多個執行緒可以同時訪問它們。
以下併發集合型別使用輕量級同步機制:SpinLock、SpinWait 等。它們是 .NET Framework 4 中的新機制。
我們來看看 C# 中的併發集合 -
型別 | 說明 |
---|---|
BlockingCollection<T> | 針對任何型別的繫結和阻塞功能。 |
ConcurrentDictionary<TKey,TValue> | 鍵值對字典的執行緒安全實現。 |
ConcurrentQueue<T> | FIFO(先進先出)佇列的執行緒安全實現。 |
ConcurrentStack<T> | LIFO(後進先出)堆疊的執行緒安全實現。 |
ConcurrentBag<T> | 元素的無序集合的執行緒安全實現。 |
IProducerConsumerCollection<T> | 型別必須實現該介面,才能在 BlockingCollection 中使用 |
讓我們來看看如何使用 ConcurrentStack<T>,它是一個執行緒安全的先進先出 (LIFO) 集合 -
ConcurrentStack<int> cs = new ConcurrentStack<int>(); cs.Push(95); cs.Push(120); cs.Push(130);
廣告