国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

分享到微博請遵守國家法律
普洱| 曲松县| 简阳市| 凉山| 嵊泗县| 宁海县| 肇东市| 大港区| 岳普湖县| 崇左市| 政和县| 孝义市| 广南县| 封丘县| 右玉县| 宣汉县| 常熟市| 陇川县| 长泰县| 中西区| 泰和县| 芷江| 新昌县| 普定县| 巢湖市| 宝鸡市| 武义县| 鸡西市| 东安县| 霍城县| 汾西县| 吴川市| 青海省| 右玉县| 芦溪县| 岑溪市| 宜君县| 彩票| 葫芦岛市| 鹤壁市| 五指山市|