最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)存泄露的理解的評論 (共 條)

分享到微博請遵守國家法律
祥云县| 永吉县| 军事| 石台县| 砚山县| 保定市| 海淀区| 化德县| 五河县| 拉萨市| 恩施市| 射洪县| 东莞市| 汶川县| 高淳县| 温泉县| 博乐市| 农安县| 长兴县| 枞阳县| 和林格尔县| 文登市| 九寨沟县| 塔城市| 湟中县| 柏乡县| 甘洛县| 大庆市| 叶城县| 古田县| 蓬溪县| 赫章县| 汕头市| 灯塔市| 梅州市| 南投县| 柳州市| 凤翔县| 广宗县| 宣恩县| 大渡口区|