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

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

比如:

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

以 ConcurrentDictionary<TKey,TValue>为例说明:

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等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值