java面試題之什么是ThreadLocal?底層如何實現的?


   ThreadLocal是一個解決線程並發問題的一個類,用於創建線程的本地變量,我們知道一個對象的所有線程會共享它的全局變量,所以這些變量不是線程安全的,我們可以使用同步技術。但是當我們不想使用同步的時候,我們可以選擇ThreadLocal變量。

每個線程都會擁有他們自己的Thread變量,他們可以使用get/set方法去獲取他們的默認值或者在線程內部改變他們的值。ThreadLocal實例通常是希望他們同線程狀態關聯起來是private static屬性。

   底層實現主要是存有一個map,以線程作為key,泛型作為value,可以理解為線程級別的緩存。每一個線程都會獲得一個單獨的map。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM