C# 中的线程安全并发集合
csharpprogrammingserver side programming更新于 2025/9/23 23:22:17
.NET Framework 4 引入了 System.Collections.Concurrent 命名空间。该命名空间包含多个线程安全且可扩展的集合类。这些集合被称为并发集合,因为它们可以同时被多个线程访问。
以下是 C# 中的并发集合 −
| Sr.No | Type &说明 |
|---|---|
| 1 | BlockingCollection<T> 适用于任何类型的边界和阻塞功能。 |
| 2 | ConcurrentDictionary<TKey,TValue> 键值对字典的线程安全实现。 |
| 3 | ConcurrentQueue<T> FIFO(先进先出)队列的线程安全实现。 |
| 4 | ConcurrentStack<T> LIFO(后进先出)的线程安全实现堆栈。 |
| 5 | ConcurrentBag<T> 无序元素集合的线程安全实现。 |
| 6 | IProducerConsumerCollection<T> 类型必须实现才能在 BlockingCollection 中使用接口 |
让我们看看如何使用线程安全的后进先出 (LIFO) 集合 ConcurrentStack<T>。
创建一个 ConcurrentStack。
ConcurrentStack<int> s = new ConcurrentStack<int>();
添加元素
s.Push(1); s.Push(2); s.Push(3); s.Push(4); s.Push(5); s.Push(6);
来看一个例子
示例
using System;
using System.Collections.Concurrent;
class Demo{
static void Main (){
ConcurrentStack s = new ConcurrentStack();
s.Push(50);
s.Push(100);
s.Push(150);
s.Push(200);
s.Push(250);
s.Push(300);
if (s.IsEmpty){
Console.WriteLine("The stack is empty!");
}
else {
Console.WriteLine("The stack isn't empty");
}
}
}

