【发布时间】:2012-02-05 10:53:36
【问题描述】:
我想在 g++ 中使用 __thread 修饰符来替代 C++11 中的 thread_local。不幸的是,我的本地线程变量没有简单的构造函数(它必须设置一个整数分量的值)。 我考虑使用这种结构:
__thread MyVariable *var;
__thread MyVariable* MyClass::var = nullptr;
每次我想获得对 var 的访问权时,我都会检查它是否已分配:
if(var == nullptr)
var = new MyVariable(42);
但我不知道如何释放以这种方式分配的内存。
【问题讨论】:
-
delete在你的线程生命周期结束时。
标签: c++ multithreading gcc g++