我有一个场景,所有线程只会在字典中插入唯一键。换句话说,没有两个线程会插入相同的密钥。我也没有任何更新或读取操作。它只是插入。在这种情况下我需要ConcurrentDictionary
吗?
答案 0 :(得分:3)
不,使用<Route key='breadcrumbs' path='((?!category).)*' component={BreadcrumbsComponent} />
并不安全,因为implemented as a hash table。因此,当您添加新的唯一键时,add方法可能会开始重新整理整个字典。如果另一个线程在重新发送过程中同时尝试添加另一个键,则最终可能会出现不一致的数据结构。所以你必须在你的情况下使用ConcurrentDictionary。另请参阅Microsoft的建议When to use a thread-safe collection。