为什么多线程程序中对未加锁的map进行写后,会造成new或malloc申请内存失败

 我来答
匿名用户
2016-03-25
展开全部
对于复杂类型的数据,例如string, map,struct,vector等等,其内部都是由多个简单类型的数据组成的。
当多线程同时对map进行读写时,必然会导致其内部的各种数据不一致,进而导致后续操作失败。
比如:线程A添加了一个元素,正打算把数量total加一,线程B清空了map,把total清零,这样导致了实际元素数量和total不一致,就会影响后面的内存分配操作了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式