C++,两个线程同时操作一个vector全局变量,一个线程写另一个线程读,“=”操作报错 10

C++,两个线程同时操作一个vector全局变量,该全局变量的大小随机,一个线程写另一个线程读,没有对该全局变量做保护。读线程直接将该全局“=”给一局部变量时会报错,但是... C++,两个线程同时操作一个vector全局变量,该全局变量的大小随机,一个线程写另一个线程读,没有对该全局变量做保护。读线程直接将该全局“=”给一局部变量时会报错,但是读线程遍历该全局并把其成员赋给另一临时变量时不会报错,如果该vector的大小不变的话读线程直接把该全局“=”给临时变量也不会报错。其造成错误的根本原因是什么?求大神解惑 展开
 我来答
木有想到GK5ym
2017-05-08 · TA获得超过208个赞
知道小有建树答主
回答量:207
采纳率:90%
帮助的人:126万
展开全部
虽然不清楚什么原因,最好加上安全锁
在我看来“读线程遍历该全局并把其成员赋给另一临时变量时不会报错”,这个也是有可能出错的,出不出错看运气
lovedt990
2018-05-18
知道答主
回答量:1
采纳率:0%
帮助的人:872
展开全部
vector大小变化时,如果超过了容量会触发内存重新分配,原来的内存被释放了,读线程有可能读到无效的内存,就会报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式