gpt4 book ai didi

c++ - 从不同线程访问 std::map

转载 作者:行者123 更新时间:2023-11-28 06:12:52 24 4
gpt4 key购买 nike

我读过std::map 不是线程安全的。因此,如果我从不同的线程访问(读/写)std::map,我是否应该简单地将相关代码包装在关键部分中?

注意:我使用的是 Visual C++ 2010。

最佳答案

简单的回答:是的。但是如何正确地做到这一点可能很棘手。基本策略是在关键部分包装对 map 的调用,包括包装迭代器的生命周期。

但您还需要确保您的应用对 map 的假设也得到了谨慎处理。例如,如果您需要从 map 中删除许多相关项目,请确保其他线程只容忍其中一些项目丢失,或者将整个批处理操作包装在 critsec 中。这很容易失控,因此您最终会在关键部分包装大量代码,这最终会导致死锁和性能下降。小心!

关于c++ - 从不同线程访问 std::map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30888850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com