析构函数与成员函数race [英] Destructor vs member function race

查看:161
本文介绍了析构函数与成员函数race的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我在一个析构函数时,是否有可能有一些其他线程将开始执行对象的成员函数?如何处理这种情况?

When I'm inside a destructor is it possible that some other thread will start executing object's member function? How to deal with this situation?

推荐答案

C ++没有内部保护,防止在删除后使用对象 -

C++ has no intrinsic protection against using an object after it's been deleting - forget about race conditions - another thread could use your object after it's been completely deleted.


  1. 确保
    代码只有一个地方拥有该对象,
    负责在没有
    使用对象时删除。

  2. 通过添加
    显式引用计数代码来计算
    对象引用,或
    找到适当的基类
    实现引用计数

这篇关于析构函数与成员函数race的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆