应用双重检查锁定是否安全Dictionary
?
TryGetValue
即,从不同线程调用和其他“获取/包含”方法是否安全?(不调用其他非 get 方法)。
upd收藏对 N 个读者和 1 个作者来说是安全的吗?假设在循环 10 中,线程尝试使用双重检查锁定访问带有键 X 的元素,如果访问,它们只是将其删除。在某些时候,我确实从另一个线程添加了带有键 X 的元素(使用锁)。我希望只有一位读者应该获得此元素并将其删除。
upd2,关于答案,所以我的问题令人困惑。其实我问了两个问题:
TryGetValue
从不同线程调用和其他“获取/包含”方法是否安全?(不调用其他非 get 方法)。- 收藏对 N 位读者和 1 位作者来说是安全的吗?
第一个问题的答案是肯定的,第二个问题的答案是否定的。
所以有时它是安全的,apply double-checked locking
有时它不是。这取决于您是否同时写入集合。