女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ThreadLocal是什么

jf_ro2CN3Fa ? 來源:CSDN ? 2023-01-30 11:36 ? 次閱讀


ThreadLocal是什么

ThreadLocal是一個本地線程副本變量工具類。主要用于將私有線程和該線程存放的副本對象做一個映射,各個線程之間的變量互不干擾,在高并發場景下,可以實現無狀態的調用,特別適用于各個線程依賴不通的變量值完成操作的場景。

下圖為ThreadLocal的內部結構圖

931b2958-9fb9-11ed-bfe3-dac502259ad0.png

從上面的結構圖,我們已經窺見ThreadLocal的核心機制:

  • 每個Thread線程內部都有一個Map。
  • Map里面存儲線程本地對象(key)和線程的變量副本(value)
  • 但是,Thread內部的Map是由ThreadLocal維護的,由ThreadLocal負責向map獲取和設置線程的變量值。

所以對于不同的線程,每次獲取副本值時,別的線程并不能獲取到當前線程的副本值,形成了副本的隔離,互不干擾。

基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

  • 項目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 視頻教程:https://doc.iocoder.cn/video/

ThreadLocalMap

932a8d58-9fb9-11ed-bfe3-dac502259ad0.png

ThreadLocalMap是ThreadLocal的內部類,沒有實現Map接口,用獨立的方式實現了Map的功能,其內部的Entry也獨立實現。

和HashMap的最大的不同在于,ThreadLocalMap結構非常簡單,沒有next引用,也就是說ThreadLocalMap中解決Hash沖突的方式并非鏈表的方式,而是采用線性探測的方式。(ThreadLocalMap如何解決沖突?

在ThreadLocalMap中,也是用Entry來保存K-V結構數據的。但是Entry中key只能是ThreadLocal對象,這點被Entry的構造方法已經限定死了。

staticclassEntryextendsWeakReference<ThreadLocal>{
/**ThevalueassociatedwiththisThreadLocal.*/
Objectvalue;

Entry(ThreadLocalk,Objectv){
super(k);
value=v;
}
}

注意了!!

Entry繼承自WeakReference(弱引用,生命周期只能存活到下次GC前),但只有Key是弱引用類型的,Value并非弱引用。(問題馬上就來了)

由于ThreadLocalMap的key是弱引用,而Value是強引用。這就導致了一個問題,ThreadLocal在沒有外部對象強引用時,發生GC時弱引用Key會被回收,而Value不會回收。

當線程沒有結束,但是ThreadLocal已經被回收,則可能導致線程中存在ThreadLocalMap的鍵值對,造成內存泄露。(ThreadLocal被回收,ThreadLocal關聯的線程共享變量還存在)。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

  • 項目地址:https://github.com/YunaiV/yudao-cloud
  • 視頻教程:https://doc.iocoder.cn/video/

如何避免泄漏

為了防止此類情況的出現,我們有兩種手段。

1、使用完線程共享變量后,顯示調用ThreadLocalMap.remove方法清除線程共享變量;

既然Key是弱引用,那么我們要做的事,就是在調用ThreadLocal的get()set()方法時完成后再調用remove方法,將Entry節點和Map的引用關系移除,這樣整個Entry對象在GC Roots分析后就變成不可達了,下次GC的時候就可以被回收。

2、JDK建議ThreadLocal定義為private static,這樣ThreadLocal的弱引用問題則不存在了。

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 變量
    +關注

    關注

    0

    文章

    614

    瀏覽量

    28821
  • 線程
    +關注

    關注

    0

    文章

    507

    瀏覽量

    20074
  • Thread
    +關注

    關注

    2

    文章

    88

    瀏覽量

    26366

原文標題:ThreadLocal 搭配線程池使用造成內存泄漏的原因和解決方案

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    ADUM4190 5kV rms 隔離誤差放大器技術手冊

    ADuM4190是一款基于ADI公司*i*Coupler?技術的隔離誤差放大器。ADuM4190非常適合用于線性反饋電源。ADuM4190的原邊控制器與常用的光耦合器和分流調節器解決方案相比,在瞬態響應、功率密度和穩定性方面均有所提高。
    的頭像 發表于 06-04 14:30 ?7次閱讀
    ADUM4190 5kV rms 隔離誤差放大器技術手冊

    Analog Devices / Maxim Integrated MAX22212 評估套件數據手冊

    Analog Devices/Maxim Integrated MAX22212評估套件提供經過驗證的設計,用于評估36V、7.6A單半橋MAX22212電機驅動器。MAX22212可驅動單個有刷直流電機,在單個H橋配置中集成了低阻抗FET,典型導通電阻(R ~ON~ ,高側+低側)為0.125Ω。該評估套件包括接頭、測試點和接線端子,用于連接MAX22212電機驅動器。MAX22212驅動器的集成電流檢測輸出ISENA和ISENB可使用測試點監控,或使用J4接頭連接到外部ADC。MAX22212驅動器具有嵌入式電流驅動調節 (CDR),擁有可調斬波電流(I ~FS~ )和可調電流限制關斷時間(t ~OFF~ )。MAX22212評估套件的工作輸入電壓范圍為4.5V至36V(V ~M~ )。典型應用包括步進電機驅動器、有刷直流電機驅動器、電磁閥驅動器和鎖存閥。
    的頭像 發表于 06-04 14:26 ?17次閱讀
    Analog Devices / Maxim Integrated MAX22212 評估套件數據手冊

    ADUM3190 2.5kV rms 隔離誤差放大器技術手冊

    ADuM3190是采用ADI公司*i*Coupler ^?^ 技術的隔離誤差放大器。ADuM3190非常適合帶原邊控制器的線性反饋電源,與常用的光耦合器和分流調節器解決方案相比,在瞬態響應、功率密度和穩定性方面均有所提高。 與在整個壽命周期中和高溫下具有不確定電流傳輸比的基于光耦合器的解決方案不同,ADuM3190的傳輸功能不隨壽命周期而改變,在寬溫度范圍-40°C至125°C內保持穩定。
    的頭像 發表于 06-04 14:22 ?15次閱讀
    ADUM3190 2.5kV rms 隔離誤差放大器技術手冊

    施耐德電氣助力數據中心突破電力系統運維瓶頸

    從發展初期的大型機時代到如今以虛擬化和云計算技術為主導的云時代,數據中心作為數字化的核心基礎設施,在漫漫進化之路上面臨多重挑戰,整個行業亟需一個行之有效的數字孿生平臺,不僅要能支撐電氣系統數字化圖紙管理,更需要通過仿真計算實現風險預判與能效優化,進一步穩定提升數據中心的核心競爭力。
    的頭像 發表于 06-04 14:22 ?15次閱讀

    施耐德電氣攜手Sewtec打造智能終端包裝解決方案

    在全球快遞業務量突破千億規模、消費市場持續細分的新常態下,包裝行業正經歷智能化轉型的關鍵階段。
    的頭像 發表于 06-04 14:20 ?22次閱讀

    Analog Devices / Maxim Integrated MAX22212直流電機驅動器數據手冊

    Analog Devices/Maxim Integrated MAX22212直流電機驅動器集成有大電流36V、~最大~ 7.6A半橋,可驅動一臺有刷直流電機或半臺步進電機。板載H橋FET具有極低的阻抗,因此可實現高驅動效率并最大限度地減少發熱。典型總導通電阻( ~RON~ ,包括高側和低側)為0.125Ω。H橋的脈寬調制 (PWM) 控制通過三個邏輯輸入(DIN1、DIN2和EN)實現。MAX22212驅動器具有精確的電流驅動調節 (CDR) 功能,可限制有刷直流電機的啟動電流或控制步進操作的相電流。這些驅動器支持四種不同的衰減方法,即慢速衰減、快速衰減和兩種混合衰減模式。典型應用包括步進電機驅動器、有刷直流電機驅動器、電磁閥驅動器和鎖存閥。
    的頭像 發表于 06-04 14:19 ?24次閱讀
    Analog Devices / Maxim Integrated MAX22212直流電機驅動器數據手冊

    施耐德電氣創贏計劃第六季正式啟動

    由工業和信息化部國際經濟技術合作中心與施耐德電氣共同主辦的創贏計劃第六季正式啟動。
    的頭像 發表于 06-04 14:17 ?22次閱讀

    國產EDA龍頭打響技術反擊戰:合見工軟高端PCB設計軟件免費開放試用!

    在美國EDA斷供的全面危機之時,中國半導體企業面臨著芯片設計與系統設計工具的重重封鎖與挑戰。在此危局時刻,合見工軟挺身而出! 中國數字EDA/IP龍頭企業 上海合見工業軟件集團有限公司(簡稱“合見工軟”) 于今日正式向用戶免費開放關鍵產品試用與評估服務! 合見工軟首期開放國產首款高端大規模PCB設計平臺UniVista Archer的免費試用! 合見工軟新一代電子系統設計平臺UniVista Archer,作為自主知識產權的國產首款高端大規模PCB設計平臺,滿足日
    發表于 06-04 14:16 ?31次閱讀

    2025年施耐德電氣創新峰會圓滿落幕

    這場以「共創?共贏?共生」為主題的行業盛會,用「三重創新」解鎖未來發展密碼,共同探討科技革命與產業變革浪潮下,中國企業如何乘勢新質生產力東風實現“能力躍遷”, 繁榮共生!
    的頭像 發表于 06-04 14:14 ?21次閱讀

    泰祥PLM項目二期成功驗收

    十堰泰祥實業股份有限公司(以下簡稱“泰祥”,上市代碼:301192)作為湃睿科技的長期合作伙伴,2017年成功部署Windchill PLM系統,夯實數字化管理基礎。
    的頭像 發表于 06-04 14:12 ?18次閱讀

    真空干燥機PLC數據采集遠程監控解決方案

    在當今工業領域,企業競爭模式從單純的產品與價格比拼,逐漸轉向服務層面的競爭,實現售后運維的數字化升級勢在必然。在此大背景下,真空干燥機作為制藥、食品和化工等眾多行業的重要設備,其運行狀態的有效監控與管理對企業生產效率、產品質量及成本控制起著舉足輕重的作用。 然而,設備制造商在真空干燥機的管理與運維過程中,面臨著一系列棘手的問題與痛點。 1、設備數量眾多且分布廣泛,。當設備出現異常時,制造商往往不能在第一
    的頭像 發表于 06-04 14:12 ?18次閱讀
    真空干燥機PLC數據采集遠程監控解決方案

    BM6GD11BFJ-LB羅姆首款面向高耐壓GaN器件驅動的隔離型柵極驅動器IC開始量產

    ? 全球知名半導體制造商ROHM(總部位于日本京都市)推出一款適用于600V級高耐壓GaN HEMT驅動的隔離型柵極驅動器IC“ BM6GD11BFJ-LB ”。通過與本產品組合使用,可使GaN器件在高頻、高速開關過程中實現更穩定的驅動,有助于電機和服務器電源等大電流應用進一步縮減體積并提高效率。 新產品是ROHM首款面向高耐壓GaN HEMT的隔離型柵極驅動器IC。在電壓反復急劇升降的開關工作中,使用本產品可將器件與控制電路隔離,從而確保信號的安全傳輸。 新產品通過采
    的頭像 發表于 06-04 14:11 ?23次閱讀
    BM6GD11BFJ-LB羅姆首款面向高耐壓GaN器件驅動的隔離型柵極驅動器IC開始量產

    Analog Devices Inc. MAX9295D GMSL2雙CSI-2串行器數據手冊

    Analog Devices MAX9295D GMSL2雙CSI-2串行器將MIPI CSI-2數據流轉換為GMSL2? 或GMSL1? 格式。Analog Devices MAX9295D支持單端口或雙端口配置。它有助于通過超過15m的電纜實現全雙工視頻傳輸和雙向控制數據。在GMSL2模式下,該器件在正向以3Gbps或6Gbps速率工作,在反向則以187.5Mbps速率工作。GMSL1模式可與3.12Gbps或1.5Gbps GMSL1解串器配對,或以高達4.5Gbps的工作速率與配置為GMSL1的GMSL2解串器配對。該器件符合AEC-Q100 2級標準,適用于汽車應用,工作溫度范圍為-40°C至+105°C,支持同軸或屏蔽雙絞線(STP)電纜。
    的頭像 發表于 06-04 14:11 ?20次閱讀
    Analog Devices Inc. MAX9295D GMSL2雙CSI-2串行器數據手冊

    日立建機MES制造執行系統正式上線

    日前,日立建機(中國)有限公司MES制造執行系統上線動員大會在安徽合肥隆重召開。日立建機中國區管理層、項目關鍵用戶及湃睿科技項目團隊共同出席了本次會議。系統于2025年5月20日正式運行,開啟智能管理新征程。
    的頭像 發表于 06-04 14:10 ?20次閱讀

    ACCU-100控制器 光伏防逆流控制方案

    1. 方案說明 ?安科瑞18702112163 隨著分布式光伏裝機越來越多,某些地方出現紅區,當地電力公司要求新建分布式光伏自發自用,進行做防逆流措施,以滿足當地電力公司的規定和要求。 l 政策推動 國家能源局頒布的《分布式光伏發電開發建設管理辦法》規定,6MW及以上的分布式光伏要求全部自發自用,針對6MW以下的分布式光伏要求自發自用、余電上網的模式,針對部分區域存在分布式光伏裝機限制的,部分小于6MW的分布式光伏也要求自發自用,做防逆流
    的頭像 發表于 06-04 14:08 ?25次閱讀
    ACCU-100控制器 光伏防逆流控制方案