TreadLocalMap 其實(shí)是可以抽取成單獨(dú)的類的?這樣就使得邏輯和嵌套關(guān)系沒(méi)有這么繞的感覺(jué)。
# 我覺(jué)得,ThreadLocalMap只有被ThreadLocal使用,做成單獨(dú)的類沒(méi)什么意義,反倒會(huì)迷惑人。
為什么只有Key要設(shè)計(jì)成WeakReference而不是Key和Value都是,或者這里為什么要設(shè)置弱引用?如果為了保護(hù)內(nèi)存空間其實(shí)兩者都是弱引用更好吧,是不是有什么其它考慮?
# 這樣的話如果Key還有強(qiáng)引用而Value沒(méi)有,會(huì)造成key映射到null上的。類似的WeakHashMap也是Key是WeakReference.
threadLocal.get() ==> returns value
// GC happened
threadLocal.get() ==> returns null;
關(guān)于ThreadLocal內(nèi)存泄露的備忘還記得第一次接觸到ThreadLocal可能導(dǎo)致內(nèi)存泄露的問(wèn)題是有一次面試的時(shí)候被問(wèn)到了ThreadLocal的缺陷是什么。當(dāng)然由于后來(lái)沒(méi)有面試官的聯(lián)系方式很遺憾也一直沒(méi)能確...