課程
/后端開發(fā)
/Java
/ThreadLocal
不是很理解為什么HashMap里面要HashMap<Thread,HashMap<Integer,Obkect>>,老師可以說下么
2020-01-31
源自:ThreadLocal 4-1
正在回答
“用兩層HashMap是由于一個線程中可能會擁有多個ThreadLocal成員變量,所以內(nèi)層HashMap是為了保存同一個線程中的不同ThreadLocal變量?!闭f法不對吧? 如果一個線程中有兩個ThreadLocal成員變量,那么按照你說的,他們的key是當前線程ThreadLocal值,那不是key沖突了?
外面的HashMap的Key是ThreadID,Value是內(nèi)層的HashMap。
內(nèi)層的HashMap的Key是當前ThreadLocal對象,Value是當前ThreadLocal的值。
用兩層HashMap是由于一個線程中可能會擁有多個ThreadLocal成員變量,所以內(nèi)層HashMap是為了保存同一個線程中的不同ThreadLocal變量。
舉報
設(shè)計者視角源碼級ThreadLocal分析教你建立線程安全感-你專屬的技術(shù)優(yōu)越感
1 回答您說hashMap是static 的 用MythreadLocal作為Key,會導致內(nèi)存無法回收
1 回答MyThreadLocal內(nèi)存回收疑惑?
4 回答為啥大面積變小面積了,為啥這里就不會有很大的性能開銷
3 回答Integer為什么不是引用類型呢?
1 回答有點疑惑,那個Val唄初試成0了, 為什么set還可以add值呢
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2020-05-06
“用兩層HashMap是由于一個線程中可能會擁有多個ThreadLocal成員變量,所以內(nèi)層HashMap是為了保存同一個線程中的不同ThreadLocal變量?!闭f法不對吧? 如果一個線程中有兩個ThreadLocal成員變量,那么按照你說的,他們的key是當前線程ThreadLocal值,那不是key沖突了?
2020-02-29
外面的HashMap的Key是ThreadID,Value是內(nèi)層的HashMap。
內(nèi)層的HashMap的Key是當前ThreadLocal對象,Value是當前ThreadLocal的值。
用兩層HashMap是由于一個線程中可能會擁有多個ThreadLocal成員變量,所以內(nèi)層HashMap是為了保存同一個線程中的不同ThreadLocal變量。