批量操作如何影响 ConcurrentDictionary?
How do bulk actions affect a ConcurrentDictionary?
我对并发词典如何锁定它们的资源感到困惑。
例如,如果我 运行 一个方法迭代字典中的每个项目并在一个线程中编辑它的值,然后我尝试从另一个线程读取键的值:
第二个线程会访问词典的快照吗?
如果没有,如果该条目已经更新,它是否会访问更新的条目?
并发字典是线程安全的,可以被多个线程同时访问。字典上的读操作以无锁方式执行,而写操作受锁保护。有关实施详情,请查看 ConcurrentDictionary.
第二个线程将访问更新后的字典。 ConcurrentDictionary
所做的只是提供对任何添加或删除操作的集合的锁定。读取操作不受影响。
我对并发词典如何锁定它们的资源感到困惑。
例如,如果我 运行 一个方法迭代字典中的每个项目并在一个线程中编辑它的值,然后我尝试从另一个线程读取键的值:
第二个线程会访问词典的快照吗? 如果没有,如果该条目已经更新,它是否会访问更新的条目?
并发字典是线程安全的,可以被多个线程同时访问。字典上的读操作以无锁方式执行,而写操作受锁保护。有关实施详情,请查看 ConcurrentDictionary.
第二个线程将访问更新后的字典。 ConcurrentDictionary
所做的只是提供对任何添加或删除操作的集合的锁定。读取操作不受影响。