一文了解ThreadLocal

什么是ThreadLocal?

ThreadLocal是每個線程私有的,線程可以把自己的私有數據放到ThreadLocal里面,不用擔心其他線程訪問到自己ThreadLocal。

通過set()方法將值存入ThreadLocal或者修改值,get()方法取出值,remove()方法移除值。
?

ThreadLocal原理

ThreadLocal類中有一個內部類ThreadLocalMap,它其實就是一個哈希表,當我們往ThreadLocal里面存數據的時候,會通過當前線程得到ThreadLocalMap,以當前ThreadLocal為key,我們set的值為value,存入到ThreadLocalMap這個哈希表中。

如果我們在當前線程定義了多個ThreadLocal,他會存放到唯一的ThreadLocalMap中。

ThreadLocal內存泄露問題

我們知道往ThreadLocal里存放數據時,會存放到ThreadLocalMap中,key是ThreadLocal,value是我們設置的值。但是存放key的時候,不是直接存放的ThreadLocal對象本身,而是存放ThreadLocal的一個弱引用,而value是存放的強引用。在GC時,弱引用被垃圾回收器檢查到就會直接回收,而如果線程一直存活的話,這個value也就一直還存在。

避免方法就是在使用完了ThreadLocal之后,一定要用remove方法移除值。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/72841.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72841.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72841.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OpenWrt開發第6篇:怎么添加OpenWrt的Package-基于Raspberry Pi 4B開發板

文/指尖動聽知識庫-谷谷 文章為付費內容,商業行為,禁止私自轉載及抄襲,違者必究!!! 文章專欄:Openwrt開發-基于Raspberry Pi 4B開發板 1.如圖1所示,首先創建軟件包所在的目錄,在openwrt根目錄中執行mkdir -p package/mypackages/helloworld命令;

常?CMS漏洞之一:WordPress

WordPress是?個以PHP和MySQL為平臺的?由開源的博客軟件和內容管理系統。WordPress具有插件架構和模板系統。截?2018年4?,排名前1000萬的?站中超過30.6%使?WordPress。 WordPress是最受歡迎的?站 內容管理系統。全球有?約30%的?站(7億5000個)都是使?WordP…

【第17節】windows sdk編程:線程與線程調度

目錄 一、線程 1.1 線程的基本概念 1.2 何時創建線程 二、線程控制 三、遍歷線程 四、線程內核對象 4.1 線程上下文 4.2 暫停次數 4.3 信號 五、線程調度 5.1 什么是線程優先級 5.2 進程優先級與相對線程優先級 5.3 編程改變優先級 5.4 動態優先級的概念 一、線程…

Python數據可視化實戰:從基礎圖表到高級分析

Python數據可視化實戰:從基礎圖表到高級分析 數據可視化是數據分析的重要環節,通過直觀的圖表可以快速洞察數據規律。本文將通過5個實際案例,手把手教你使用Python的Matplotlib庫完成各類數據可視化任務,涵蓋條形圖、堆積面積圖、…

【機器學習-分類算法】

比如將一張圖片按尺寸識別分類為橫向或者縱向兩類就是二分類問題 設x軸為圖像的寬、y軸為圖像的高,那么把訓練數據展現在圖上就是這樣的: 若增加更多的數據集有: 如果只用一條線將圖中白色的點和黑色的點分開,那么: 分類的目的就是找到這條線,就可以根據點在線…

Compose Indication:點擊效果設置

Compose Indication:打造獨特點擊效果的秘密武器 在Compose開發中,大家可能都碰到過Indication,不少人第一次接觸它,是在想去掉Material默認的點擊水波紋效果的時候。要是在AI工具里搜“怎么去掉水波紋效果”,會得到這…

Docker build 會在本地產生巨大的文件

Docker build 會在本地產生巨大的文件, 比如 用 這個命令列出本地鏡像 docker images 可見size都是很大的, 到docker目錄下,看到ext4.vhdx的大小 80多G 那只能用這個命令把不用的鏡像刪掉了: (rmi后面是鏡像id&a…

臺式機電腦組裝---電腦機箱與主板接線

臺式機電腦組裝—電腦機箱與主板接線 1、機箱連接主板的跳線一般主要有USB 2.0、USB 3.0、前置音頻接口(HD_AUDIO)以及POWER SW、RESET SW、POWER LED、HDD LED四個主板跳線,這些跳線分別的含義如下。 RESET SW:機箱重啟按鍵;注&#xff1a…

【虛幻引擎UE5】SpawnActor生成Character實例不執行AI Move To,未初始化AIController的原因和解決方法

虛幻引擎版本:5.5.4 問題描述 剛創建的Third Person項目里,定義一個BP_Enemy藍圖,拖拽到場景中產生的實例會追隨玩家,但SpawnActor產生的實例會固定不動。BP_Enemy藍圖具體設計如下: BP_Enemy的Event Graph ?? 又定義…

跨平臺RTSP高性能實時播放器實現思路

跨平臺RTSP高性能實時播放器實現思路 目標:局域網100ms以內超低延遲 一、引言 現有播放器(如VLC)在RTSP實時播放場景中面臨高延遲(通常數秒)和資源占用大的問題。本文提出一種跨平臺解決方案,通過網絡層…

HTTP 失敗重試(重發)方案

在 Qt 網絡開發中,使用 QNetworkAccessManager 進行 HTTP 請求時,可能會遇到網絡超時、服務器錯誤等情況。為了提高請求的可靠性,可以實現 HTTP 失敗重試(重發) 機制。下面介紹幾種常見的 失敗重發方案: 單…

大白話詳細解讀React框架的diffing算法

1. Diffing 算法是什么? Diffing 算法是 React 用來比較虛擬 DOM(Virtual DOM)樹的一種算法。它的作用是找出前后兩次渲染之間的差異(diff),然后只更新這些差異部分,而不是重新渲染整個頁面。 …

【Linux內核系列】:動靜態庫詳解

🔥 本文專欄:Linux 🌸作者主頁:努力努力再努力wz 💪 今日博客勵志語錄: 有些鳥兒是注定是關不住的,因為它們的每一片羽翼都沾滿了自由的光輝 ★★★ 本文前置知識: 編譯與鏈接的過程…

深度解讀DeepSeek部署使用安全(48頁PPT)(文末有下載方式)

深度解讀DeepSeek:部署、使用與安全 詳細資料請看本解讀文章的最后內容。 引言 DeepSeek作為一款先進的人工智能模型,其部署、使用與安全性是用戶最為關注的三大核心問題。本文將從本地化部署、使用方法與技巧、以及安全性三個方面,對Deep…

【詳細解決】pycharm 終端出現報錯:“Failed : 無法將“Failed”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。

昨天在終端一頓操作后突然打開pycharm時就開始報錯: 無法將“Failed”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。請檢查名稱的拼寫,如果包括路徑,請確保路徑正確,然后再試一次。 所在位置 行:1 字符: 1 Failed to act…

【電路筆記】-D型觸發器

D型觸發器 文章目錄 D型觸發器1、概述2、主從D觸發器3、使用D型觸發器進行分頻4、D觸發器作為數據鎖存器5、透明數據鎖存器6、總結D型觸發器是一種改進的置位-復位觸發器,通過增加一個反相器來防止S和R輸入處于相同的邏輯電平。 1、概述 D型觸發器克服了基本SR NAND門雙穩態電…

智慧共享桿:城市智能化管理的 “多面手”

智慧共享桿:城市智能化管理的 “多面手” 在智慧城市建設的進程中,智慧共享桿憑借其多功能與集約化的特性,逐漸成為城市基礎設施建設領域的重點關注對象。它不僅革新了傳統路燈桿的固有模式,更為城市的高效管理與便捷服務開創了全…

【Tips】pip臨時換源

pip換源網站 用法: pip install xxx庫 -i https://pypi.tuna.tsinghua.edu.cn/simple https://pypi.tuna.tsinghua.edu.cn/simplehttps://mirrors.aliyun.com/pypi/simplehttps://pypi.douban.com/simplehttps://pypi.mirrors.ustc.edu.cn/simplehttps://mirrors.…

AcWing 838:堆排序 ← 數組模擬

【題目來源】 https://www.acwing.com/problem/content/840/ 【題目描述】 輸入一個長度為 n 的整數數列,從小到大輸出前 m 小的數。 【輸入格式】 第一行包含整數 n 和 m。 第二行包含 n 個整數,表示整數數列。 【輸出格式】 共一行,包含…

Microchip AN1477中關于LLC數字補償器的疑問

最近在學習Microchip的AN1477關于LLC的功率級傳遞函數推導及數字補償器設計,對其中的2P2Z數字補償器的系數有一些困惑。我在MATLAB中運行了源程序提供的VMC_LLC.m文件,發現有些地方和AN1477中的結果不一致。現在把相關有疑問的地方列舉出來,也…