前言
在多线程中对同一变量进行写操作的时候,会导致最终结果与预期不一致,使用安全类型保证原子性。
int
不安全的示例
安全的示例
集合
不安全的示例
安全的示例
集合相关安全类型
BlockingCollection 为实现 IProducerConsumerCollection 的线程安全集合提供阻塞和限制功能。
ConcurrentBag 表示对象的线程安全的无序集合。
ConcurrentDictionary<TKey, TValue> 表示可由多个线程同时访问的键值对的线程安全集合。
ConcurrentQueue 表示线程安全的先进先出 (FIFO) 集合。
ConcurrentStack 表示线程安全的后进先出 (LIFO) 集合。
OrderablePartitioner 表示将一个可排序数据源拆分成多个分区的特定方式。
Partitioner 提供针对数组、列表和可枚举项的常见分区策略。
Partitioner 表示将一个数据源拆分成多个分区的特定方式。
IProducerConsumerCollection 定义供制造者/使用者用来操作线程安全集合的方法。此接口提供一个统一的表示(为生产者/消费者集合),从而更高级别抽象如System.Collections.Concurrent.BlockingCollection 可以使用集合作为基础的存储机制。