c# - 多线程访问内存中的大型字典对象 - 瓶颈?

标签 c# multithreading

快速多线程问题...

我在内存中有一个包含大约 20,000 个项目的字典对象。如果我有多个线程尝试读取此对象,您会认为这会造成瓶颈吗?

净 3.5 。字典对象将是只读的

字典是只读的,所以我不关心读/写,只关心性能。

最佳答案

它不会造成瓶颈,但字典不是线程安全的,因此您可能无法获得预期的结果。在 .NET 4.0 中,您可以使用 ConcurrentDictionary<TKey, TValue> 为此目的。

如果它是一个只读字典,那么拥有并发读者可能是安全的,只需确保在静态构造函数中用数据填充这个字典,以确保写入不会干扰读取并且它发生在任何线程尝试之前阅读。

关于c# - 多线程访问内存中的大型字典对象 - 瓶颈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4270224/

相关文章:

java - 使用不可变数据的惰性初始化总是线程安全的吗?

java - Java中synchronized语句的静态锁对象

JavaFX 8 - 使用新线程创建计数器具有次要效果

c# - BlockingCollection.TakeFromAny 方法是否适合构建阻塞优先级队列?

java - display.async 和平滑过渡

c# - NHibernate 和 EF,在上下文之外执行查询?

c# - 如何禁用泛型复杂类型字段的延迟加载?

c# - 如何在字符串中出现第三个空格时分割字符串?

c# - 有条件的 DEBUG - 它是否仍然编译成 RELEASE 代码?

c# - 如何使用 OpenXML 使 excel 工作表标题行加粗