ThreadLocal類的講解

2022-05-01 01:33:14 字數 456 閱讀 9852

1.執行緒區域性變數,同乙個執行緒內共享資料

2.api:threadlocal底層是乙個map,其api和map也很類似

set(value):給threadlocal賦值,threadlocal底層是乙個map,key是當前執行緒名,value就是引數裡傳進來的value值。可以想象出set(value)的底層是執行了map.put(執行緒名,value)操作

get():得到threadlocal裡的value,底層用的是map.get(執行緒名);

remove():去除threadlocal裡的value,底層用的是map.remove(執行緒名);

3.threadlocal local=new threadlocal();後,底層產生乙個map,map裡存的是不同執行緒訪問的執行緒名和對應的value。取值的時候根據執行緒名去取值。只要new出乙個threadlocal,那麼這個map就存放了執行緒名及其對應的value值。

執行緒ThreadLocal類

threadlocal 在很多地方叫做本地變數,在有些地方叫做執行緒本地儲存。threadlocal 在每個執行緒中為每個變數都建立了乙個副本,每個執行緒可以訪問自己內部的副本變數,而不會對其它執行緒的副本變數造成影響。如果看不懂沒關係,下面會解釋各個函式的意思。public t get publi...

大白話講解ThreadLocal的原理

threadlocal顧名思義,本地執行緒,可以理解為本地執行緒變數,說白了就是操作本地執行緒的區域性變數。下面我們通過原始碼進行說明 首先,我們看一下threadlocal的set方法原始碼實現 public void set t value 通過原始碼我們可以發現,首先獲取了當前執行緒,然後呼叫...

多執行緒基礎講解十一 ThreadLocal

threadlocal其實特別簡單 就是為每乙個執行緒建立乙個區域性變數。如果不用threadlocal的效果 public class order public class newthread extends thread override public void run public class...