首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >智能指针析构函数种族条件

智能指针析构函数种族条件
EN

Stack Overflow用户
提问于 2017-08-24 16:25:10
回答 1查看 280关注 0票数 0

给出了下面的破坏者:

代码语言:javascript
复制
~shared_ptr(){
    *_ref_count--;
    if(*_ref_count==0){
        delete _p;
        delete _ref_count;
    }
}

如果

_ref_count == 2

两个释放智能指针的线程会导致双重删除(崩溃)和/或根本不删除(内存泄漏)吗?

EN

回答 1

Stack Overflow用户

发布于 2017-08-24 17:48:10

简单答案

是的,有比赛条件。两个线程可以同时减少和测试。

调查性病::原子或包装在互斥或使用std::shared_ptr (最好的答案)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45866707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档