ThreadLocal是一個解決線程並發問題的一個類,用於創建線程的本地變量,我們知道一個對象的所有線程會共享它的全局變量,所以這些變量不是線程安全的,我們可以使用同步技術。但是當我們不想使用同步的時候,我們可以選擇ThreadLocal變量。
每個線程都會擁有他們自己的Thread變量,他們可以使用get/set方法去獲取他們的默認值或者在線程內部改變他們的值。ThreadLocal實例通常是希望他們同線程狀態關聯起來是private static屬性。
底層實現主要是存有一個map,以線程作為key,泛型作為value,可以理解為線程級別的緩存。每一個線程都會獲得一個單獨的map。