S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

线程本地存储和线程同步的区别

Posted on 2009-03-11 22:39 S.l.e!ep.¢% 阅读(716) 评论(0)  编辑 收藏 引用 所属分类: MulThreads

线程本地存储和线程同步的区别

线程本地存储和线程同步是完全不同的,虽然他们都是为了解决多线程并发带来的问题,本地存储要解决的问题是多个线程要访问各自的全局变量,该变量在每个线程中的作用和用法完全相同,但是内容不同.
而线程同步要解决的问题是多个线程要访问同一个变量,共同维护该变量的内容,但是要保持该变量的一致,正确.
 
下面介绍一下TLS:
每个线程都有自己的一个LPVOID型的数组,数组中的元素在每个线程中同一分配,譬如通过TlsAlloc()得到返回值3,那么每个线程中索引为3的数组都为inuse状态,将来创建的线程也是如此.但是他们的值只能在自己的线程中获得和设置.

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