C++STL容器部分操作多线程不安全

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_38132420/article/details/71699517

最近项目中发现一个c++stl容器多线程查找可能出现CPU占用率100%的问题。
问题是这样的,线程A和线程B共享一个stl::map。其中线程A对map有查找的操作,线程B对map有删除的操作。收集其core文件后发现线程A一直在map的查找中循环。看map查找函数中确实用一个while循环实现。确定为线程B删除了线程A查找的值导致线程A中陷入了map表查找死循环中。
总结:C++STL容器部分操作时多线程不安全的。在多线程情景下要使用STL容器必须考虑到这种情景。

阅读更多
换一批

没有更多推荐了,返回首页