lgxqf  

第二十一章 线程本地存储(Thread-Local Storage)

1.动态TLS

                       图中TlsGetValue(gdwTlsIndex2)在线程1和线程2中返回的值是不同的。

 

在创建线程时,进程会为当前创建的线程分配一个void *的数组作为TLS用。它用于存储只限当前线程可见的全局变量。

从而使进程中的每个线程都可以有自已的(不能其它线程访问的)全局变量。

TlsAlloc在返回时会先把槽中的值置为0。每个线程至少有64个槽。

2.静态TLS

              __declspec(thread)关键字用于声明,线程本地的全局变量。

              要求声明的变量必须是全局变量或静态变量。

 

3.Common API:

              TlsAlloc   TlsFree

              TlsSetValue             TlsGetValue

              __declspec(thread)

posted on 2009-03-18 13:57  Justin_Ma  阅读(348)  评论(0编辑  收藏  举报