使用 POSIX 在C++中回收线程的内存
Reclaiming a thread's memory in C++ with POSIX
我有两个类,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
对象的生存期。
相关文章:
- 我是否生成线程并导致内存泄漏?
- 多线程程序中出现意外的内存泄漏
- 我有一个线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x8)错误.我认为这是由于内存管理不好.我可以
- 在没有任何锁的情况下加入另一个线程后是否需要内存围栏?
- 在可拆卸线程完成操作时取消分配内存
- 在线程退出之前,线程分配的内存块是否与线程本身具有相同的相关性?
- 其他线程堆栈上的可用内存无效
- 多个线程之间的获取-释放内存顺序
- 在不同的内存位置同时写入 std::d eque 是否线程安全?
- 为什么使用 make_unique<> 将函数传递给线程会导致 Valgrind 中的内存泄漏?
- 在 C++11 线程中,std::mutex 对内存可见性有什么保证?
- 多线程环境中C++内存访问
- 在Linux中减少每个线程内存
- boost :: asio :: io_service.post()背景线程内存使用情况
- 创建远程线程:内存管理
- c++11多线程内存错误
- 线程内存问题
- 线程写入缓冲区内存和线程内存
- c++中的多线程内存分析
- 是否有用于多线程内存分配器的验证套件