牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

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

转载自:http://blog.csdn.net/pc_fly/archive/2008/04/21/2311723.aspx

将线程的私有数据(局部存储的数据)共享,以供本进程中的其它线程使用。
适用情形:
线程局部存储适用于多线程共享数据,而又不需要同步的情形。(线程同步的开支比较大。)
 
原理
在每个线程中有一个存储区域,该存储区域有64个slot(数据槽)。可以通过该slot的索引值(一个DWORD数值),获取指定的slot。每个slot可以设置,也可以取值。Slot中的数据是本线程中的私有数据。
步骤
1.         分配
TlsAlloc,获取可用的Slot索引。  该值应当为各个线程所共享。
2.         设置。
TlsSetValue,为指定slot设置值,一个指针,指向本线程中的私有数据区。
3.         取值。
TlsGetValue,从指定slot中取值,一个指针,指向某个线程中的私有数据。
4.         释放。
TlsFree,释放某个slot,使其可以被其它线程使用。

posted on 2008-04-29 14:36 杨粼波 阅读(469) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理