Posted on 2009-03-11 22:39
S.l.e!ep.¢% 阅读(716)
评论(0) 编辑 收藏 引用 所属分类:
MulThreads
线程本地存储和线程同步的区别
线程本地存储和线程同步是完全不同的,虽然他们都是为了解决多线程并发带来的问题,本地存储要解决的问题是多个线程要访问各自的全局变量,该变量在每个线程中的作用和用法完全相同,但是内容不同.
而线程同步要解决的问题是多个线程要访问同一个变量,共同维护该变量的内容,但是要保持该变量的一致,正确.
下面介绍一下TLS:
每个线程都有自己的一个LPVOID型的数组,数组中的元素在每个线程中同一分配,譬如通过TlsAlloc()得到返回值3,那么每个线程中索引为3的数组都为inuse状态,将来创建的线程也是如此.但是他们的值只能在自己的线程中获得和设置.