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