dense_hash_map
线程中的读取操作是否安全?
答案 0 :(得分:0)
通常认为可重入类型的const
C ++对象(大多数是)是线程安全的。
dense_hash_map
的文档没有说明线程安全的任何内容,因此最防御的方法是假设它甚至不是可重入的。然而,它需要不受保护的全局可变状态来使类不可重入,并且很难找到dense_hash_map
要求它的参数,但看到它将其内容存储到磁盘,这可能是您所希望的全部对于。即使在可变操作上,假设事物是线程安全的,如果没有文档的确认,也是牵强附会的。
除了文档之外,您可能需要查看实现,以了解是否可以验证至少某些API子集的重入性。
答案 1 :(得分: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
是否是线程安全的其他信息。