remove方法用於刪除當前線程中緩存的以ThreadLocal對象爲key的線程局部變量對象
0、無參
public void remove() {
ThreadLocalMap m = getMap(Thread.currentThread());
if (m != null)
m.remove(this);
}
獲取當前Thread對象持有的ThreadLocalMap對象,並賦值給臨時變量m進行臨時存儲,若獲取成功,則會將當前ThreadLocal對象傳入到ThreadLocalMap的remove方法中,該方法會移除以ThreadLocal對象爲key的元素,若當前Thread對象還未創建持有的ThreadLocalMap對象,此時m爲null,就什麼也不做,方法結束
總結
a、remove線程局部變量對象,就是remove在Thread對象持有的ThreadLocalMap對象中的元素,可見ThreadLocalMap對象是多麼重要,ThreadLoca對象完全依賴ThreadLocalMap對象進行緩存線程局部變量對象
b、remove方法很友好,即便ThreadLocalMap對象還未初始化,也沒關係,當你不需要線程局部變量對象的時候,請愉快的使用remove即可