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

Reclaiming a thread's memory in C++ with POSIX

本文关键字:线程 内存 POSIX C++ 使用      更新时间:2023-10-16

我有两个类,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的内存?

简单:

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

请注意,由于C2线程是一个实现细节,所以其他代码不应该假设C2对象的生存期。