用 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);
广告