天天看點

ThreadLocal的個人了解

threadlocal的設計思想十分簡單,它的核心對象就是threadlocalmap,被聲明在thread類裡面,每個thread都持有一個threadlocalmap,是以才能實作線程隔離,以達到存儲共享變量的作用:

<code>threadlocal.threadlocalmap threadlocals = null;</code>

對threadlocalmap的所有操作都在threadlocal類裡面,我認為threadlocal本身其實隻是個工具類,threadlocalmap 才是共享變量線上程中的副本的存在。下面是threadlocal中對線程的threadlocalmap 的操作:

//設定目前線程的共享變量的值,key為threadlocal對象本身,value為共享變量的值

}<code>`</code>

//得到線程的threadlocalmap對象

我們來說說threadlocalmap這個對象,它是一個hashmap結構,每個key和value都構成一個entry,這個entry繼承了弱引用: