有某种数据类型需要满足如下需求:
1,单一线程内部使用
2,生命周期与线程一致
3,便于管理
一般的做法如下:
unsigned int ThreadMain(LPVOID p) { unsigned int g_ThreadVar = 0; //这个作为线程自身的共享变量 ... return 0; }
这样做的坏处,主要是在代码里面可维护性和可管理性变差了。
所以就干脆采取tls来进行管理
unsigned int ThreadMain(LPVOID p) { unsigned int* var1 = new unsigned int; tlsset(id, var) ... return 0; }