【发布时间】:2013-06-07 11:51:22
【问题描述】:
用户可以同时读取静态变量吗?
public static ConcurrentDictionary<string, object> aStaticDictionary= new ConcurrentDictionary<string, object>();
当用户阅读字典时
aStaticDictionary["key"]
并发请求是否排队?
【问题讨论】:
用户可以同时读取静态变量吗?
public static ConcurrentDictionary<string, object> aStaticDictionary= new ConcurrentDictionary<string, object>();
当用户阅读字典时
aStaticDictionary["key"]
并发请求是否排队?
【问题讨论】:
是的,但有一些警告。静态变量可以被多个线程读取,但不能在进程之间共享。如果您已将 IIS 应用程序池配置为拥有多个工作进程,这一点很重要。
您无法预测不同线程访问字典的顺序。 ConcurrentDictionary 仅保证与写入字典同时进行的读取不会导致问题,而如果使用标准 Dictonary 类,它们可能会发生问题。
【讨论】: