MARK網(wǎng)址
http://m.blog.csdn.net/article/details?id=24314381
ThreadLocal : 看這個英文名字,大概能猜到是什么意思。線程本地,專業(yè)點線程封閉。它其實就是為了解決并發(fā)編程中對統(tǒng)一個屬性訪問的時候,以前同步解決的問題,那樣效率低而且容易出錯,你需要考慮什么時候持有鎖什么時候釋放鎖。
ThreadLocal的出現(xiàn),讓每個線程都保存一份它自己的副本,人人有份,別來爭。這樣做的好處,性能也會上升。
借用一句很經(jīng)典的話 以空間換時間
ThreadLocal是一個接口 它有四個方法 set remove get initValue
ThreadLocal 是怎么實現(xiàn)每個線程都能保存一個副本的呢,如果讓你來設(shè)計你會怎么樣做,你可能想到了,ThreadLocal的實現(xiàn)類中有一個全局的map來維護(hù)這種關(guān)系,KEY是每個線程,Value就是你要保存的變量副本。 這個map是類級別的
具體的東西看看mark網(wǎng)址吧,他講得專業(yè)