预分配的unordered_map的线程安全性

时间:2013-03-01 04:37:55

标签: c++ multithreading unordered-map

如果您确切知道无序地图将包含的最大元素数,并且您预先分配了确切数量的存储桶。

该容器上的哪些操作是线程安全的(而不是容器中存储的对象)?

1 个答案:

答案 0 :(得分:0)

从您的问题来看,您似乎并不完全了解哈希映射(即unordered_map)的工作原理。您可以阅读this article on wiki以更好地理解它。所以,如果你不是这个意思 您有minimal perfect hash function然后设置的桶数量与预期的元素数量完全相同会使事情变得更糟。如果你确实希望有最小的完美哈希函数,这是一个非常特殊的情况,你应该提到有问题,可能你会如何实现这一点。

无论如何,我怀疑你会在unordered_map的操作上得到任何形式的线程安全保证,即使你提供最小的完美哈希函数。