亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

3天內(nèi)不再提示

ThreadLocal是什么

jf_ro2CN3Fa ? 來源:CSDN ? 2023-01-30 11:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


ThreadLocal是什么

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

下圖為ThreadLocal的內(nèi)部結構圖

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

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

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

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

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

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

ThreadLocalMap

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

ThreadLocalMap是ThreadLocal的內(nèi)部類,沒有實現(xiàn)Map接口,用獨立的方式實現(xiàn)了Map的功能,其內(nèi)部的Entry也獨立實現(xiàn)。

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

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

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

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

注意了??!

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

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

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

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

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

如何避免泄漏

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

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

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

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

審核編輯 :李倩


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

    關注

    0

    文章

    615

    瀏覽量

    29339
  • 線程
    +關注

    關注

    0

    文章

    508

    瀏覽量

    20712
  • Thread
    +關注

    關注

    2

    文章

    91

    瀏覽量

    27139

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ADS8355 16位1MSPS、2通道同步采樣SAR ADC技術手冊

    該ADS8355是一款雙通道、高速、同步采樣、模數(shù)轉換器 (ADC),支持單端和偽差分模擬輸入。 該器件支持靈活的串行接口,可在較寬的電源電壓范圍內(nèi)工作。靈活的接口可與各種主機控制器輕松通信。通過使用器件支持的兩種低功耗模式,可以優(yōu)化給定吞吐量的功耗。該器件在擴展的工業(yè)溫度范圍(–40°C 至 +125°C)內(nèi)完全額定,并采用 16 引腳 WQFN(3 mm × 3 mm)封裝。
    的頭像 發(fā)表于 11-03 14:49 ?0次閱讀
    ADS8355 16位1MSPS、2通道同步采樣SAR ADC技術手冊

    AI時代,如何用服務器存儲如何升級?

    相對于HBM、GDDR和DRAM,企業(yè)級SSD優(yōu)勢在于彌補了數(shù)據(jù)供給速度與計算速度之間的巨大鴻溝,特別是全新的CPU、GPU在算力、核心數(shù)量、AI吞吐量井噴式的增長,以往的低速存儲很容易造成計算單元空轉,造成數(shù)據(jù)饑餓,進而影響到企業(yè)的時間與支出成本。
    的頭像 發(fā)表于 11-03 14:46 ?7次閱讀
    AI時代,如何用服務器存儲如何升級?

    NVIDIA CEO黃仁勛暢談AI時代最新藍圖

    在主題演講中,NVIDIA 創(chuàng)始人兼首席執(zhí)行官黃仁勛勾勒出了 AI 時代的最新藍圖。從大規(guī)模 GPU 部署和量子技術突破,到 AI 工廠、機器人技術和自動駕駛。
    的頭像 發(fā)表于 11-03 14:45 ?1次閱讀

    ADS131M06 六通道、24位、32kSPS、同步采樣、Δ-Sigma ADC技術手冊

    該ADS131M06是一款六通道、同步采樣、24 位、Δ-Σ (ΔΣ)、模數(shù)轉換器 (ADC),具有寬動態(tài)范圍、低功耗和能量測量特定功能,使該器件非常適合電能計量、功率計量和斷路器應用。ADC輸入可以直接連接到電阻分壓器網(wǎng)絡或電源變壓器以測量電壓,或連接到電流互感器或羅氏線圈以測量電流。
    的頭像 發(fā)表于 11-03 14:43 ?9次閱讀
    ADS131M06 六通道、24位、32kSPS、同步采樣、Δ-Sigma ADC技術手冊

    ?基于TE Connectivity T9A繼電器外殼數(shù)據(jù)手冊的技術解析與應用指南

    TE Connectivity T9A繼電器外殼配有標準FASTON端子,設計具有低插配力、大推力表面和最小化錯誤連接等功能。這些繼電器外殼接受低插入力 (LIF) 標準FASTON插座和零插入力“插入式”外殼腔,以實現(xiàn)較低的裝配力。這些插座通過集成終端位置保證(TPA)設備固定到位,并具有觸感插配確認功能,以防止部分連接。這些T9A繼電器外殼具有250VAC~~ 額定電壓和20A最大恒定測試電流。典型應用包括烹飪設備、洗衣機和烘干機、洗碗機以及供暖、通風和空調 (HVAC)。
    的頭像 發(fā)表于 11-03 14:43 ?9次閱讀

    NVIDIA IGX Thor機器人處理器重磅發(fā)布

    IGX Thor 基于 NVIDIA Blackwell 架構,可為工業(yè)、機器人開發(fā)和醫(yī)療應用提供實時 AI 性能、安全性和可靠性。
    的頭像 發(fā)表于 11-03 14:40 ?2次閱讀

    AFE58JD32LP 32通道超聲AFE技術手冊

    該AFE58JD32LP是一種高度集成的模擬前端 (AFE) 解決方案,專為需要高性能、低功耗和小尺寸的便攜式超聲系統(tǒng)而設計。 該器件通過具有兩個芯片的多芯片模塊 (MCM) 實現(xiàn):1 個 VCA 芯片和 1 個 ADC 芯片。VCA芯片有32個通道,與ADC芯片的16個通道連接。每個ADC通道交替轉換奇數(shù)和偶數(shù)VCA通道。
    的頭像 發(fā)表于 11-03 14:37 ?16次閱讀
    AFE58JD32LP 32通道超聲AFE技術手冊

    NVIDIA與Uber合作推進全球L4級自動駕駛移動出行網(wǎng)絡

    NVIDIA 宣布與 Uber 達成合作,將共同擴展全球 L4 級自動駕駛移動出行網(wǎng)絡。合作將依托 Uber 新一代無人駕駛出租車和自動配送車隊,采用全新 NVIDIA DRIVE AGX Hyperion 10 輔助駕駛開發(fā)平臺以及專為 L4 級自動駕駛打造的 NVIDIA DRIVE 輔助駕駛軟件。
    的頭像 發(fā)表于 11-03 14:33 ?11次閱讀

    炬芯科技榮獲上交所上市公司信息披露工作最高評價

    近日,上海證券交易所(以下簡稱“上交所”)公布滬市上市公司2024-2025年度信息披露工作評價結果,炬芯科技(股票代碼:688049.SH)獲評最高等級A級,成功位列上交所信息披露工作的最高等級行列。炬芯科技作為中國領先的低功耗 AIoT 芯片設計廠商獲此殊榮,充分體現(xiàn)了監(jiān)管機構對炬芯科技在公司治理、規(guī)范運作及投資者關系管理等方面的高度認可。
    的頭像 發(fā)表于 11-03 14:31 ?12次閱讀

    精準計量!瑞銀電子單相電能表獲MID/CSA認證,助力充電樁出海

    小巧機身兼容歐美電網(wǎng),為充電樁企業(yè)打通海外市場提供核心計量解決方案。
    的頭像 發(fā)表于 11-03 14:29 ?21次閱讀
    精準計量!瑞銀電子單相電能表獲MID/CSA認證,助力充電樁出海

    普源精電推出高帶寬有源差分探頭PVA9000系列

    在PCIe、USB3.2、DDR4等高速信號的世界里,每一個皮秒(ps)的抖動,每一個毫伏(mV)的噪聲,都可能導致整個系統(tǒng)的“蝴蝶效應”。為了更好地觀察高速世界,普源精電(RIGOL)發(fā)布旗艦級——PVA9000系列高帶寬有源差分探頭。它專為高速數(shù)字接口研發(fā)與驗證而生,以優(yōu)異的信號保真度,助您在技術前沿占得先機。
    的頭像 發(fā)表于 11-03 14:28 ?13次閱讀

    AFE7700 4 個發(fā)射、4 個接收、2 個反饋射頻收發(fā)器技術手冊

    AFE7700器件是一款高性能、多通道收發(fā)器,集成了四個直接上變頻發(fā)射器鏈、四個直接下變頻接收器鏈和兩個寬帶射頻采樣數(shù)字化輔助鏈(反饋路徑)。發(fā)射器和接收器鏈的高動態(tài)范圍可實現(xiàn)高性能無線收發(fā)器系統(tǒng)。 該AFE7700的低功耗和大通道集成度使該器件能夠解決多天線和相控陣系統(tǒng)的功率和尺寸限制。寬帶和高動態(tài)范圍反饋路徑可以輔助功率放大器的數(shù)字預失真(DPD)和發(fā)射機鏈中的IQ校正??焖俚?SerDes 速度可以減少傳入和傳出數(shù)據(jù)所需的通道數(shù)量。
    的頭像 發(fā)表于 11-03 14:26 ?26次閱讀
    AFE7700 4 個發(fā)射、4 個接收、2 個反饋射頻收發(fā)器技術手冊

    TE Connectivity 工業(yè)級RJ45模塊化插座技術解析與應用指南

    TE Connectivity(TE)工業(yè)RJ45模塊化插座符合IEC 60603-7-1和IEC 60603-7-3標準,支持-40°C至+85°C工業(yè)溫度范圍。這些耐用連接器具有長達750次插拔周期,因此具有高可靠性和性價比。該連接器支持通孔技術(THT),具有回流焊功能,符合JEDEC J-STD-020D標準。選項包括10/100Mbps和1Gbps速度(帶或不帶LED),以及1x1、1x2和2x1外形尺寸。TE Industrial RJ45無磁性元件模塊化插座添加了一系列入門級產(chǎn)品,可與TE分立式磁性元件系列一起使用,從而補充了TE RJ45連接器系列。應用包括工業(yè)、機器人、 電機和電機控制、自動化控制以及機械。
    的頭像 發(fā)表于 11-03 14:25 ?33次閱讀

    檸檬光子亮相2025涂布產(chǎn)業(yè)高質量發(fā)展論壇

    第三屆涂布產(chǎn)業(yè)高質量發(fā)展論壇于2025年10月29日下午,在深圳國際會展中心隆重舉辦。
    的頭像 發(fā)表于 11-03 14:24 ?25次閱讀

    Kuikly鴻蒙版正式開源 —— 揭秘卓越性能適配之旅

    進行評測對比,發(fā)現(xiàn)鴻蒙上的耗時是同等性能的iOS設備上2.48倍。為此,我們針對鴻蒙平臺進行一系列的優(yōu)化,包括內(nèi)聯(lián)優(yōu)化、ThreadLocal優(yōu)化、協(xié)程性能優(yōu)化等。優(yōu)化后,鴻蒙Kotlin
    發(fā)表于 06-04 16:46