C ++ std :: map - 如果一个线程写入并且另一个读取总是使用不同的键,则线程安全吗?

时间:2016-01-28 12:59:25

标签: c++ multithreading thread-safety stdmap

线程A使用密钥C

写入std :: map

线程B使用密钥D从std :: map读取

如果始终保证密钥不重叠,这个线程是否安全?

由于std :: map在里面使用了树形结构,我可以想象在它被变异时可能会有问题从中读取。

如果std :: map不起作用,std :: unordered_map会更好吗?

1 个答案:

答案 0 :(得分:4)

  • 如果通过撰写,则意味着更改已存在的值 与密钥C关联的条目,然后答案是(我相信)
  • 如果你写下你的意思是(可能)插入新元素(或删除它们),那么答案肯定是 NO

虽然不是权威来源,www.cplusplus.com通常会有关于每个功能的潜在数据争用的部分。