ThreadLocal與Synchronized

ThreadLocal使用場合主要解決多線程中數據數據因併發產生不一致問題。ThreadLocal爲每一個線程的中併發訪問的數據提供一個副本,經過訪問副原本運行業務,這樣的結果是耗費了內存,單大大減小了線程同步所帶來性能消耗,也減小了線程併發控制的複雜度。html

ThreadLocal和Synchonized都用於解決多線程併發訪問。可是ThreadLocal與synchronized有本質的區 別。synchronized是利用鎖的機制,使變量或代碼塊在某一時該只能被一個線程訪問。而ThreadLocal爲每個線程都提供了變量的副本, 使得每一個線程在某一時間訪問到的並非同一個對象,這樣就隔離了多個線程對數據的數據共享。而Synchronized卻正好相反,它用於在多個線程間通 信時可以得到數據共享。多線程

Synchronized用於線程間的數據共享,而ThreadLocal則用於線程間的數據隔離。併發

ThreadLocal類詳解請查看http://www.cnblogs.com/dolphin0520/p/3920407.html ThreadLocal類實例請查看http://blog.csdn.net/yemaozi2009/article/details/39212167性能

相關文章
相關標籤/搜索