Posted on 2009-03-11 22:39
S.l.e!ep.¢% 閱讀(723)
評論(0) 編輯 收藏 引用 所屬分類:
MulThreads
線程本地存儲和線程同步的區別
線程本地存儲和線程同步是完全不同的,雖然他們都是為了解決多線程并發帶來的問題,本地存儲要解決的問題是多個線程要訪問各自的全局變量,該變量在每個線程中的作用和用法完全相同,但是內容不同.
而線程同步要解決的問題是多個線程要訪問同一個變量,共同維護該變量的內容,但是要保持該變量的一致,正確.
?
下面介紹一下TLS:
每個線程都有自己的一個LPVOID型的數組,數組中的元素在每個線程中同一分配,譬如通過TlsAlloc()得到返回值3,那么每個線程中索引為3的數組都為inuse狀態,將來創建的線程也是如此.但是他們的值只能在自己的線程中獲得和設置.