给出了下面的破坏者:
~shared_ptr(){
*_ref_count--;
if(*_ref_count==0){
delete _p;
delete _ref_count;
}
}如果
_ref_count == 2
两个释放智能指针的线程会导致双重删除(崩溃)和/或根本不删除(内存泄漏)吗?
发布于 2017-08-24 17:48:10
简单答案
是的,有比赛条件。两个线程可以同时减少和测试。
调查性病::原子或包装在互斥或使用std::shared_ptr (最好的答案)
https://stackoverflow.com/questions/45866707
复制相似问题