线程局部存储(TLS)的使用

开辟一块儿存储区,用以存储全局数据,虽然是全局数据,但对各个线程又各不相同,每个线程都可以在这块儿区域存储只对自己有效的数据。
l 适用情形:
线程局部存储适用于多线程共享数据,而又不需要同步的情形。(线程同步的开支比较大。)
 
l 原理
在每个线程中有一个存储区域,该存储区域有64个slot(数据槽)。可以通过该slot的索引值(一个DWORD数值),获取指定的slot。每个slot可以设置,也可以取值。Slot中的数据是本线程中的私有数据。
l 步骤
1.         分配
TlsAlloc,获取可用的Slot索引。   该值应当为各个线程所共享。
2.         设置。
TlsSetValue,为指定slot设置值,一个指针,指向本线程中的私有数据区。
3.         取值。
TlsGetValue,从指定slot中取值,一个指针,指向某个线程中的私有数据。
4.         释放。
TlsFree,释放某个slot,使其可以被其它线程使用。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值