dense_hash_map
线程中的读取操作是否安全?
问问题
943 次
2 回答
0
const
可重入类型(大多数是)的C++ 对象通常被认为是线程安全的。
的文档dense_hash_map
没有指定有关线程安全的任何内容,因此最具防御性的方法是假设它甚至不是可重入的。但是,使类不可重入需要不受保护的全局可变状态,并且很难找到dense_hash_map
要求这样做的论据,但是鉴于它将其内容存储到磁盘,这可能就是您所希望的。在没有文档确认的情况下假设事情是线程安全的,即使在可变操作上也是牵强的。
除非有文档,否则您可能希望查看实现,看看您是否可以验证 API 至少某个子集的可重入性。
于 2012-06-19T16:20:38.303 回答
0
根据论文Scalable, High Performance Ethernet Forwarding with CUCKOOSWITCH (2013),对于读写google::dense_hash_map
来说不是线程安全的:
[...] 因此,我们还比较了三个非线程安全的哈希表:STL
hash_map
和 Google 的sparse_hash_map
和dense_hash_map
. [...] 这些非线程安全的表不支持并发读写。
我找不到任何其他关于google::dense_hash_map
线程安全与否的信息。
于 2020-01-28T22:13:41.213 回答