c# - 具有恒定读取时间的并发收集
问题描述
ConcurrentDictionary
提供恒定的阅读时间。我不需要键值对,只需要键..我搜索了读取时间ConcurrentBag
,但没有找到它是如何实现的?
除了 ConcurrentDictionary 之外,是否有恒定的读取时间 ConcurrentCollection?
解决方案
ConcurrentBag可能不是您想要的:
表示一个线程安全的、无序的对象集合。
这意味着它允许重复(而字典不允许)
当订购无关紧要时,包对于存储物品很有用,而且与集合不同,包支持重复。
至于性能,它肯定不如列表的性能好(至少如此O(n)
)(C# - ConcurrentBag 与 List 的性能比较)
在ConcurrentSet
这里查看自定义实现的运气:如何在 .Net 中实现 ConcurrentHashSet
您还可以查看并发集合列表,看看是否有其他适合您的需求。