c++ - 锁定映射和 vector 以防止从两个线程访问

标签 c++ multithreading stl

我有两个线程,每个线程都有一个函数来操作相同的 std:map 和 std:vector 变量。

保留这些变量的最佳方法是什么。

谢谢

最佳答案

这取决于操作的种类。你只覆盖存储的值,还是你也插入/删除元素?在前一种情况下,您可以仅锁定容器的特定元素(例如,通过在每个元素中嵌入 std::mutex),而在后一种情况下,您需要在每次操作期间锁定整个容器.

关于c++ - 锁定映射和 vector 以防止从两个线程访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14439680/

相关文章:

c++ - 通过可变参数列表传递 shared_ptr

java - 在此示例代码中怎么可能实例化接口(interface)?

python - 如何设置从 shell 调用时 python 脚本可以使用的最大线程

c++ - Vector在C++中的实现

c++ - 需要一些建议来选择合适的容器

c++ - 等待线程直到条件发生

c++ - xerces - 处理标签名称中的命名空间

c++ - 未使用的 STL 容器是否分配内存?

c++ - 将指向 union 体的指针强制转换为未知事件成员的已知基类

java - 如何使用 JPA 和 Hibernate 的多个处理线程来持久化实体