ConcurrentDictionary<TKey,TValue> 等线程安全集合类

c#中使用的List,Dictionary等常用的集合,如果需要在多线程中有写操作,会线程不安全,需要加锁(lock),有时自己写的,可能会有性能问题或bug。c#中对这些集合类,都实现了相应的线程安全的集合。

比如:

ConcurrentBag 表示对象的线程安全的无序集合。可以用来替换List
ConcurrentDictionary 表示可由多个线程同时访问的键值对的线程安全集合。可以代替Dictionary
ConcurrentQueue 表示线程安全的先进先出 (FIFO) 集合。代替 Queue
ConcurrentStack 表示线程安全的后进先出 (LIFO) 集合。代替 Stack

以 ConcurrentDictionary为例说明:

1:命名空间在:System.Collections.Concurrent

2:使用参考微软官方文档:https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.concurrent?view=netframework-4.5

3:实现源码参考:Reference Source

4:使用时,有些方法名一致,有些比如Add对应TryAdd等。

你可能感兴趣的:(c#,c#)