一、目的
将数据与指定的线程关联起来。
二、动态TLS
系统会为进程分配一组使用标记(每个标记可能是FREE、INUSE),线程需要则可以申请,然后将数据设置进去。
TlsAlloc () 申请标记,清空标记中的数据。
TlsSetAlloc 为标记设置数据。
TlsGetAlloc 取出标记中的数据。
TlsFree 取消申请的标记。
三、静态TLS
1、全局变量或者静态变量 前用 __declspec(thread)修饰。
2、所有此类变量会被生成到.tls段中。
3、每一个线程都有此类变量的独立内存。
注意:使用这种变量,编译器会生成额外的代码,因此性能很差。