将線程的私有資料(局部存儲的資料)共享,以供本程序中的其它線程使用。
l 适用情形:
線程局部存儲适用于多線程共享資料,而又不需要同步的情形。(線程同步的開支比較大。)
l 原理
在每個線程中有一個存儲區域,該存儲區域有64個slot(資料槽)。可以通過該slot的索引值(一個DWORD數值),擷取指定的slot。每個slot可以設定,也可以取值。Slot中的資料是本線程中的私有資料。
l 步驟
配置設定
TlsAlloc,擷取可用的Slot索引。 該值應當為各個線程所共享。
設定。
TlsSetValue,為指定slot設定值,一個指針,指向本線程中的私有資料區。
取值。
TlsGetValue,從指定slot中取值,一個指針,指向某個線程中的私有資料。
釋放。
TlsFree,釋放某個slot,使其可以被其它線程使用。