五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

ThreadLocal中的內(nèi)存泄露的理解

2023-07-14 04:43 作者:風(fēng)涼云漫  | 我要投稿

0. ThreadLocal的使用:在線程外創(chuàng)建ThreadLocal類型的threadLocal變量, threadLocal.set(v) 將threadLocal作為key,v作為value放入在每個線程中創(chuàng)建的ThreadLocalMap中的一個entry里,一個Tread持有一個ThreadLocal.ThreadLocalMap,可以進行多個不同的threadlocal.set()。 1. 對于每個map,例如hashMap,只要原本的key丟失了,value對象就會發(fā)生泄露。但是對于hashMap,回收hashMap即可回收掉里面的table里所有的元素。 2. 在使用線程池時,線程不會被輕易回收,ThreadLocalMap也就不會輕易回收,所以需要一些策略解決內(nèi)存泄露問題。 3. 用戶在threadlocal不使用時,可以調(diào)用remove()來回收對應(yīng)entry中的value。 4. 為了防止用戶不自主回收value,ThreadLocal類采用如下設(shè)計,Entry中的key弱引用持有threadLocal對象,在threadLocal引用為null時,threadLocal對象會被很快回收,也就是Entry中的key會置為null。這樣就知道了哪些value已經(jīng)無效了。 5. 在調(diào)用set(),get(),remove()時,都有相應(yīng)的策略去清理已經(jīng)無效的value。

ThreadLocal中的內(nèi)存泄露的理解的評論 (共 條)

分享到微博請遵守國家法律
陇川县| 车险| 澎湖县| 年辖:市辖区| 永嘉县| 修水县| 静宁县| 清河县| 虎林市| 亳州市| 胶南市| 孟津县| 玉溪市| 黄山市| 台州市| 瑞金市| 陇南市| 恭城| 会东县| 合江县| 高要市| 濮阳县| 建瓯市| 盘锦市| 洛隆县| 平远县| 宁都县| 墨脱县| 万宁市| 嵊泗县| 炉霍县| 玉环县| 桂林市| 广德县| 桃园县| 洪江市| 漠河县| 福清市| 永福县| 尼木县| 灌南县|