轉(zhuǎn)載自:
http://blog.csdn.net/pc_fly/archive/2008/04/21/2311723.aspx
將線程的私有數(shù)據(jù)(局部存儲的數(shù)據(jù))共享,以供本進程中的其它線程使用。
l 適用情形:
線程局部存儲適用于多線程共享數(shù)據(jù),而又不需要同步的情形。(線程同步的開支比較大。)
l 原理
在每個線程中有一個存儲區(qū)域,該存儲區(qū)域有64個slot(數(shù)據(jù)槽)??梢酝ㄟ^該slot的索引值(一個DWORD數(shù)值),獲取指定的slot。每個slot可以設置,也可以取值。Slot中的數(shù)據(jù)是本線程中的私有數(shù)據(jù)。
l 步驟
2. 設置。
TlsSetValue,為指定slot設置值,一個指針,指向本線程中的私有數(shù)據(jù)區(qū)。
3. 取值。
TlsGetValue,從指定slot中取值,一個指針,指向某個線程中的私有數(shù)據(jù)。
4. 釋放。
TlsFree,釋放某個slot,使其可以被其它線程使用。