看到這裏我們就理解了 ThreadLocal 造成內存溢出的原因:如果 ThreadLocal 沒有被直接引用(外部強引用),在 GC(垃圾回收)時,由於 ThreadLocalMap 中的 key 是弱引用,所以一定就會被回收,這樣一來 ThreadLocalMap 中就會出現 key 爲 null 的 Entry,並且沒有辦法訪問這些數據,如果當前線程再遲遲不結束的話,這些 key 爲 null 的 Entry 的 value 就會一直存在一條強引用鏈:Thread Ref -> Thread -> ThreaLocalMap -> Entry -> value 並且永遠無法回收,從而造成內存泄漏。
ThreadLocal 造成內存溢出的原因
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
一文帶你理解透MyBatis源碼
原創
2024-06-03 10:59:21
java 文檔轉pdf
原創
2024-06-03 10:27:33
本地緩存Ehcache的應用實踐
京東雲開發者
2024-05-31 23:55:56
一站式鏈路追蹤:阿里雲的端到端解決方案
原創
2024-05-31 21:13:44
com.fasterxml.jackson.databind.JsonMappingException: Invalid UTF-8 start byte 0xb1
原創
2024-05-30 22:15:03
雲效 Flow 配置備忘
原創
2024-05-30 11:43:23
Dolphinscheduler不重啓加載Oracle驅動
原創
2024-05-28 21:22:10
記錄一次cnvd事件型證書漏洞挖掘
原創
2024-05-28 11:16:19
構建強韌:愛奇藝VRS系統可用性建設實踐
原創
2024-05-28 02:22:00
spring源碼閱讀之bean加載過程(一)
原創
2024-05-27 23:55:57
今天!通義靈碼在北京、成都、杭州三城開講啦
原創
2024-05-27 21:13:46
關於在SpringBoot3.2中使用grpc插件生成*ServiceGrpc.java報錯找不到符號的一種解決方案
原創
2024-05-27 13:48:34
聊聊Spring中的數據綁定 --- WebDataBinder、ServletRequestDataBinder、WebBindingInitializer 文章源於Ai生成
微學網絡
2024-05-27 10:53:57
hadoop-2單節點和hive安裝
原創
2024-05-24 23:51:33