2013年6月日历,三妻四妾歌曲链接,quzhuzhe桔子
C++STL容器部分操作多线程不安全。最近项目中发现一个c++stl容器多线程查找可能出现CPU占用率100%的问题。
问题是这样的,线程A和线程B共享一个stl::map。其中线程A对map有查找的操作,线程B对map有删除的操作。收集其core文件后发现线程A一直在map的查找中循环。看map查找函数中确实用一个while循环实现。确定为线程B删除了线程A查找的值导致线程A中陷入了map表查找死循环中。
总结:C++STL容器部分操作时多线程不安全的。在多线程情景下要使用STL容器必须考虑到这种情景。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论