c++ - std::map 的线程安全替代方案?

标签 c++ thread-safety stdmap

我有一个并行循环和对 std::map 的写访问。我想同时访问 map 的不同部分,即我想访问 map[a] 和 map[b] 以获得不同的 a,b。然而,当我发现这是不可能的时,我想知道是否有一个好的替代方案或如何以不同的方式实现这一目标!

最佳答案

我可能是错的,但我相信将现有元素修改为 map 是安全的,只要您不接触相同的元素(因为这不会修改 map 的底层结构)。因此,如果您提前插入 map[a]map[b],您的单独线程应该能够修改这些现有元素。

也就是说,使用互斥锁等常规同步技术来保护对 map 的访问可能更清洁、更安全。

关于c++ - std::map 的线程安全替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12290707/

相关文章:

c++ - Xcode5 的 MPI 问题

java - Java.sql 的 getRow() 线程安全吗?

java - 如何调用一个方法,直到它每 x 分钟返回 true

java - 有人可以用外行术语解释线程安全吗?

c++ - std::map emplace 不可移动不可复制非默认构造类型

c++ - 使用 char* 作为 std::map 中的键

c++ - 从模板函数返回多个值作为 std::tuple

c++ - 如果 32 位整数溢出,我们可以使用 40 位结构而不是 64 位长的结构吗?

c++ - 删除列表中元素的问题

c++ - std::map 默认值(仅移动类型)