ThreadLocal有兩個問題:
在旌陽等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供網站設計、成都做網站 網站設計制作按需開發,公司網站建設,企業網站建設,成都品牌網站建設,成都營銷網站建設,成都外貿網站建設,旌陽網站建設費用合理。
1. 每個變量副本是存儲在哪了?
2. 變量副本是怎樣從共享的變量中賦值出來的?源碼中threadlocal的初始值是什么時候設置的。
ThreadLocal為每個線程維護一個變量的副本?
每個線程的ThreadLocalMap都是線程自身持有的,但是初始化是在ThreadLocal中,然后每個線程相當于保存了一個map
這個map存的key是LocalThread的實例,value是存儲的線程的局部變量
get方法
根據當前線程獲取Thread中的值
set方法
根據當前線程獲取當前線程的map,然后設置當前線程的值,
從而保證每個線程的值都是從自己的ThreadMap中獲取
ThreadLocal為什么會引起內存泄漏
ThreadLocal的弱引用作為key,如果gc想要回收的時候,ThreadLcoal必然回收,Thread ref -> Thread ->ThreadLocalMap->Entry->value這個強引用一直就會存在,造成內存泄漏
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。
當前名稱:ThreadLocal原理及內存泄漏原因
瀏覽路徑:http://m.kartarina.com/article42/pipjhc.html
成都網站建設公司_創新互聯,為您提供企業建站、、外貿建站、網站制作、手機網站建設、動態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯