使用POSIX在C ++中回收线程的内存

时间:2014-10-09 10:22:17

标签: c++

我有两个班,C1和C2。两者都继承自Thread类(使用POSIX)。我根据一些套接字请求调用C1中的特定函数。我正在做以下事情:

C1.cpp:

C2 *c2 = new C2();

if (c2->MyFunction())     // MyFunction will start thread, run and do some database activity ,ftp ..etc
{
    cout << "success";
    enter code here
}
else
{
    cout << "failed";
}

如何在此处回收c2的内存?

1 个答案:

答案 0 :(得分:2)

简单:

void C2::ThreadMain()
{
    // ....
    delete this;
    return;
}

要小心,因为C2线程是一个实现细节,其他代码不应该假设C2个对象的生命周期。