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

将线程的私有数据(局部存储的数据)共享,以供本进程中的其它线程使用。
l 适用情形:
线程局部存储适用于多线程共享数据,而又不需要同步的情形。(线程同步的开支比较大。)

l 原理
在每个线程中有一个存储区域,该存储区域有64个slot(数据槽)。可以通过该slot的索引值(一个DWORD数值),获取指定的slot。每个slot可以设置,也可以取值。Slot中的数据是本线程中的私有数据。
l 步骤

  1. 分配
    TlsAlloc,获取可用的Slot索引。 该值应当为各个线程所共享。
  2. 设置。
    TlsSetValue,为指定slot设置值,一个指针,指向本线程中的私有数据区。
  3. 取值。
    TlsGetValue,从指定slot中取值,一个指针,指向某个线程中的私有数据。
  4. 释放。
    TlsFree,释放某个slot,使其可以被其它线程使用。
上一篇:使用Xamarin实现跨平台移动应用开发(转载)


下一篇:在MVVM模式中,按钮Click事件的绑定方法