ThreadLocal總結(jié)

問(wèn):ThreadLocal底層的map是線程安全的嗎?
不是線程安全的,也不需要為它設(shè)置線程安全的鎖。ThreadLocal的底層實(shí)現(xiàn)map是Thread類(lèi)的一個(gè)屬性。既然位于Thread內(nèi)部,即不需要關(guān)注它是不是安全的,因?yàn)樗蔷€程私有的屬性而已。

問(wèn):ThreadLocal會(huì)產(chǎn)生內(nèi)存泄漏嗎?
會(huì),原因在于key是弱引用,在觸發(fā)full gc的時(shí)候key會(huì)被回收,而value是強(qiáng)引用,無(wú)法回收。則map也不會(huì)被回收。但是由于key回收的原因,線程無(wú)法獲取value。則變成了一個(gè)存在map也存在value卻無(wú)法訪問(wèn)的問(wèn)題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ThreadLocal是java.lang包里的一個(gè)優(yōu)秀的多線程工具。ThreadLocal為變量在每個(gè)線程中都創(chuàng)...
    長(zhǎng)特高閱讀 330評(píng)論 1 1
  • 一 、概述 定義官方定義: This class provides thread-local variables....
    撒法第閱讀 245評(píng)論 0 0
  • 1 線程封閉 多線程訪問(wèn)共享可變數(shù)據(jù)時(shí),涉及到線程間數(shù)據(jù)同步的問(wèn)題。并不是所有時(shí)候,都要用到共享數(shù)據(jù),所以線程封閉...
    JavaEdge閱讀 1,888評(píng)論 0 7
  • 下面我就以面試問(wèn)答的形式學(xué)習(xí)我們的——ThreadLocal類(lèi)(源碼分析基于JDK8) 問(wèn)答內(nèi)容 1、問(wèn):Thre...
    Sophia_dd35閱讀 2,150評(píng)論 1 36
  • 希望所有人心里都有點(diǎn)逼數(shù),該安靜的時(shí)候別打擾別人。 要不自己被告幾次狀了都不知道。 更可能不知道什么時(shí)候就被室友捅...
    無(wú)端修辭閱讀 289評(píng)論 0 0

友情鏈接更多精彩內(nèi)容