之前写的多线程老是报这个错,还是随机出现,有时是几千张图片出现,有时是几万张,根本没法打断点调试,经过跟踪vs的并行堆栈,发现是数据进出队列后会出现为空的问题,排查发现是入队列时,还没入完queue.empty()就为true,导致另一线程取出来的数据为空(未分配地址),就会引发数据竞态。
::operator delete(_Ptr, _Bytes);报错,可能是数据竞态
最新推荐文章于 2024-09-15 11:40:06 发布
之前写的多线程老是报这个错,还是随机出现,有时是几千张图片出现,有时是几万张,根本没法打断点调试,经过跟踪vs的并行堆栈,发现是数据进出队列后会出现为空的问题,排查发现是入队列时,还没入完queue.empty()就为true,导致另一线程取出来的数据为空(未分配地址),就会引发数据竞态。