国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

ThreadLocal是什么

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

掃碼添加小助手

加入工程師交流群


ThreadLocal是什么

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

下圖為ThreadLocal的內(nèi)部結(jié)構(gòu)圖

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

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

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

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

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

  • 項目地址: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結(jié)構(gòu)非常簡單,沒有next引用,也就是說ThreadLocalMap中解決Hash沖突的方式并非鏈表的方式,而是采用線性探測的方式。(ThreadLocalMap如何解決沖突?

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

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

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

注意了!!

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

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

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

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

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

如何避免泄漏

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

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

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

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

審核編輯 :李倩


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

    關(guān)注

    0

    文章

    615

    瀏覽量

    29396
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    508

    瀏覽量

    20772
  • Thread
    +關(guān)注

    關(guān)注

    2

    文章

    91

    瀏覽量

    27280

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    AURIX? Audio Application Kit for AURIX? lite Kit V2 深度解析

    AURIX? Audio Application Kit for AURIX? lite Kit V2 深度解析 在音頻技術(shù)不斷發(fā)展的今天,一款功能強(qiáng)大且靈活的音頻應(yīng)用套件對于電子工程師來說至關(guān)重要。今天,我們就來深入探討 Infineon Technologies AG 推出的 AURIX? Audio Application Kit for AURIX? lite Kit V2,看看它能為我們帶來哪些驚喜。 文件下載: Infineon Technologies KIT_A2G_AUDIO_SHIELD AURIX?板.pdf 一、套件概述 AURIX? Audio Application Kit 由 Audio Shield Board 和 Microphone Array Board 兩塊板子組成。該套件必須與 AURIX? lite Kit
    的頭像 發(fā)表于 12-20 20:35 ?14次閱讀

    EiceDRIVER? 2EDR8259H等雙通道隔離柵極驅(qū)動器IC:設(shè)計與應(yīng)用詳解

    EiceDRIVER? 2EDR8259H等雙通道隔離柵極驅(qū)動器IC:設(shè)計與應(yīng)用詳解 作為一名電子工程師,在設(shè)計電源轉(zhuǎn)換系統(tǒng)時,選擇合適的柵極驅(qū)動器IC至關(guān)重要。今天就來詳細(xì)聊聊英飛凌的EiceDRIVER? 2EDR8259H、2EDRx259X、2EDRx258X系列雙通道隔離柵極驅(qū)動器IC。 文件下載: Infineon Technologies EiceDRIVER?增強(qiáng)型隔離柵極驅(qū)動器IC.pdf 1. 產(chǎn)品概述 EiceDRIVER? 2EDR8259H、2EDRx259X、2EDRx258X是一系列雙通道隔離柵極驅(qū)動器IC,專為驅(qū)動Si和SiC MOSFET以及GaN HEMT功率開關(guān)而設(shè)計。所有產(chǎn)品都采用
    的頭像 發(fā)表于 12-20 20:35 ?19次閱讀

    雙向保護(hù)開關(guān)評估套件使用指南

    雙向保護(hù)開關(guān)評估套件使用指南 在鋰離子電池的應(yīng)用中,電池管理系統(tǒng)(BMS)起著至關(guān)重要的作用,它能監(jiān)測電池狀態(tài)并確保電池安全運行。其中,電子開關(guān)是BMS的重要組成部分,在關(guān)鍵條件下能將電池與充電器或負(fù)載斷開。今天,我們就來詳細(xì)介紹雙向開關(guān)評估套件EVAL_BDPS_DD_TOLL/G和EVAL_BDPS_DRIVER,它主要用于測試和評估MOSFET的性能。 文件下載: Infineon Technologies EVAL_BDPS_DD_TOLL評估板.pdf 1. 雙向開關(guān)基礎(chǔ) 雙向電流阻斷是多電源系統(tǒng)中的必要功能,功率M
    的頭像 發(fā)表于 12-20 20:35 ?15次閱讀

    雙向保護(hù)開關(guān)評估套件使用指南:從原理到實戰(zhàn)

    雙向保護(hù)開關(guān)評估套件使用指南:從原理到實戰(zhàn) 引言 在鋰離子電池應(yīng)用中,電池管理系統(tǒng)(BMS)至關(guān)重要,它能實時監(jiān)測電池狀態(tài),保障電池安全運行。而BMS中的電子開關(guān),就像是電池的“守護(hù)者”,在關(guān)鍵時刻切斷電池與充電器或負(fù)載的連接。今天,我們就來深入了解一下雙向開關(guān)評估套件EVAL_BDPS_DD_TOLL/G和EVAL_BDPS_DRIVER,它主要用于測試和評估MOSFET的性能。 文件下載: Infineon Technologies EVAL_BDPS_DRIVER評估板.pdf 雙向開關(guān)原理 基本功能 雙向電流阻斷是必
    的頭像 發(fā)表于 12-20 20:30 ?23次閱讀

    EVAL_6EDL7141_FOC_3SH 1 kW評估板:助力三相無刷直流電機(jī)驅(qū)動設(shè)計

    EVAL_6EDL7141_FOC_3SH 1 kW評估板:助力三相無刷直流電機(jī)驅(qū)動設(shè)計 在電子工程師的日常工作中,高效且可靠的電機(jī)驅(qū)動設(shè)計是一個重要的課題。今天,我們就來詳細(xì)探討一下英飛凌的EVAL_6EDL7141_FOC_3SH評估板,它在電池供電的三相無刷直流(BLDC)電機(jī)驅(qū)動方面有著出色的表現(xiàn)。 文件下載: Infineon Technologies EVAL6EDL7141FOC3SH評估板.pdf 一、評估板概述 EVAL_6EDL7141_FOC_3SH評估板采用了MOTIX? 6EDL7141三相電機(jī)控制柵極驅(qū)動IC,搭配板載的XMC?微控制器、OBD以及IST011N06NM5
    的頭像 發(fā)表于 12-20 20:30 ?28次閱讀

    探索CY4535 EZ - PD? BCR - LITE評估套件:開啟USB Type - C電源適配新旅程

    探索CY4535 EZ - PD? BCR - LITE評估套件:開啟USB Type - C電源適配新旅程 在電子設(shè)備不斷演進(jìn)的今天,電源接口的標(biāo)準(zhǔn)化和通用性變得愈發(fā)重要。傳統(tǒng)的桶形連接器在通用性上存在一定局限,而USB Type - C憑借其可逆插拔、高功率傳輸?shù)忍匦裕饾u成為電源接口的新寵。今天,我們就來深入了解一下CY4535 EZ - PD? BCR - LITE評估套件(EVK),看看它如何助力我們實現(xiàn)從桶形連接器到USB Type - C的平滑過渡。 文件下載: Infineon Technologies CY4535 EZ-PD? BCR LITE評估套件.pd
    的頭像 發(fā)表于 12-20 20:30 ?26次閱讀

    冬季電瓶修復(fù)該加些什么?

    冬季來臨,不少朋友發(fā)現(xiàn)鉛酸電池在低溫環(huán)境下容量有所下降。其實,提升電池耐低溫性能主要有兩種途徑,但都需要在生產(chǎn)源頭完成,并不建議后期自行添加。 一、如何提升電池耐低溫性能? 1. 負(fù)極板添加木素 ? 在負(fù)極板中添加木素,可以有效減少低溫下負(fù)極板的閉孔現(xiàn)象,從而改善電池低溫性能。 2. 電解液添加耐低溫電解質(zhì) ? 在電解液中加入硫酸鎂、硫酸亞錫等電解質(zhì),也能增強(qiáng)電池的耐低溫能力。這兩種方法都屬于電芯廠家的配方工藝,在生
    的頭像 發(fā)表于 12-20 17:01 ?134次閱讀
    冬季電瓶修復(fù)該加些什么?

    兩節(jié)串聯(lián)鋰電池充電管理芯片,普通,高壓,快充輸入選型介紹

    在現(xiàn)代便攜式電子設(shè)備、電動工具、儲能系統(tǒng)等領(lǐng)域,兩節(jié)串聯(lián)鋰電池因其7.4V標(biāo)稱電壓、較高的能量密度和相對安全的電壓范圍而得到廣泛應(yīng)用。這種配置通常采用兩個18650電芯或聚合物鋰電池串聯(lián)而成,工作電壓范圍為6V(深度放電)至8.4V(充滿狀態(tài))。與單節(jié)鋰電池相比,兩節(jié)串聯(lián)系統(tǒng)在相同容量下能提供更高的輸出功率,但同時也對充電管理提出了更復(fù)雜的技術(shù)要求。 第一章:基礎(chǔ)原理與技術(shù)挑戰(zhàn) 1.1 充電管理的基本邏輯 兩節(jié)串聯(lián)鋰電池的充電過
    的頭像 發(fā)表于 12-20 16:35 ?142次閱讀
    兩節(jié)串聯(lián)鋰電池充電管理芯片,普通,高壓,快充輸入選型介紹

    MDB-RS232適配器數(shù)據(jù)通信格式解析

    MDB-RS232適配器數(shù)據(jù)通信格式解析
    的頭像 發(fā)表于 12-20 16:26 ?148次閱讀
    MDB-RS232適配器數(shù)據(jù)通信格式解析

    EiceDRIVER? APD 2ED2410-EM:高性能汽車MOSFET柵極驅(qū)動器解析

    EiceDRIVER? APD 2ED2410-EM:高性能汽車MOSFET柵極驅(qū)動器解析 在汽車電子領(lǐng)域,對于可靠且高效的MOSFET柵極驅(qū)動器的需求日益增長。英飛凌的EiceDRIVER? APD 2ED2410-EM正是這樣一款滿足汽車應(yīng)用嚴(yán)格要求的產(chǎn)品。今天,我們就來深入剖析這款柵極驅(qū)動器的特點、性能以及應(yīng)用。 文件下載: Infineon Technologies 2ED2410-EM MOSFET柵極驅(qū)動器.pdf 產(chǎn)品概述 2ED2410-EM是一款單通道柵極驅(qū)動器,具備兩個獨立的柵極輸出,專為12V/24V汽車應(yīng)用量身打造。它不僅支持ISO 26262標(biāo)準(zhǔn),為硬
    的頭像 發(fā)表于 12-20 16:25 ?192次閱讀

    探索OPTIREG? SBC TLE9263BQXV33:汽車應(yīng)用中的多面手

    探索OPTIREG? SBC TLE9263BQXV33:汽車應(yīng)用中的多面手 在汽車電子領(lǐng)域,系統(tǒng)基礎(chǔ)芯片(SBC)扮演著至關(guān)重要的角色,它為微控制器提供電源管理、通信接口等關(guān)鍵功能。今天,我們將深入探討英飛凌的OPTIREG? SBC TLE9263BQXV33,一款專為汽車CAN - LIN應(yīng)用設(shè)計的芯片,看看它有哪些獨特之處和強(qiáng)大功能。 文件下載: Infineon Technologies OPTIREG? Mid-Range+ SBC系列.pdf 一、產(chǎn)品概述 OPTIREG? SBC TLE9263BQXV33屬于可擴(kuò)展的系統(tǒng)基礎(chǔ)芯片家族,這個家族有多種產(chǎn)品,能實現(xiàn)全面
    的頭像 發(fā)表于 12-20 16:25 ?184次閱讀

    CY4534 EZ - PD? BCR - PLUS評估套件:開啟USB Type - C電源設(shè)計新征程

    CY4534 EZ - PD? BCR - PLUS評估套件:開啟USB Type - C電源設(shè)計新征程 在電子設(shè)備的電源設(shè)計領(lǐng)域,從傳統(tǒng)的DC桶形連接器向USB Type - C連接器的轉(zhuǎn)變正逐漸成為趨勢。今天,我們就來深入探討一下英飛凌的CY4534 EZ - PD? 桶形連接器替換增強(qiáng)版(BCR - PLUS)評估套件(EVK),看看它如何助力工程師們實現(xiàn)這一轉(zhuǎn)變。 文件下載: Infineon Technologies CY4534 EZ-PD? BCR PLUS評估套件.pdf 一、評估套件概述 CY4534 EZ - PD? BCR - PLUS EVK基于CYPD3176設(shè)備,這是英飛凌USB Type - C和電源傳輸
    的頭像 發(fā)表于 12-20 16:20 ?204次閱讀

    探索XENSIV? 連接傳感器套件:開啟快速物聯(lián)網(wǎng)體驗

    探索XENSIV? 連接傳感器套件:開啟快速物聯(lián)網(wǎng)體驗 作為電子工程師,我們在物聯(lián)網(wǎng)設(shè)備開發(fā)和部署中常常面臨諸多挑戰(zhàn)。而英飛凌的XENSIV? 連接傳感器套件為我們提供了一個出色的解決方案,下面就來詳細(xì)了解一下這個套件。 文件下載: Infineon Technologies XENSIV? BGT60TR13C聯(lián)網(wǎng)傳感器套件.pdf 套件概述 XENSIV? 連接傳感器套件旨在解決物聯(lián)網(wǎng)設(shè)備開發(fā)和部署中的四大關(guān)鍵挑戰(zhàn),即感知周圍環(huán)境(感知)、處理原始數(shù)據(jù)(計算)以及將設(shè)備連接到云端(連接
    的頭像 發(fā)表于 12-20 16:20 ?205次閱讀

    探索eupec DD B6U 134 N 16 RR二極管模塊:特性、參數(shù)與應(yīng)用考量

    探索eupec DD B6U 134 N 16 RR二極管模塊:特性、參數(shù)與應(yīng)用考量 在電子工程領(lǐng)域,選擇合適的半導(dǎo)體器件對于電路設(shè)計的成功至關(guān)重要。今天,我們將深入探討eupec的DD B6U 134 N 16 RR二極管模塊,它集成了整流二極管、IGBT和快速二極管,為工程師們提供了多樣化的應(yīng)用解決方案。 文件下載: Infineon Technologies DDB6U134N16RR IGBT硅模塊.pdf 電氣特性:性能的基石 整流二極管 整流二極管的性能參數(shù)直接影響著模塊在電路中的整流效果。其周期性峰值反向電壓(VRRM)高
    的頭像 發(fā)表于 12-20 16:20 ?207次閱讀

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

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