91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

ThreadLocal是什么

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

掃碼添加小助手

加入工程師交流群


ThreadLocal是什么

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

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

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

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

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

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

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

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

ThreadLocalMap

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

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

和HashMap的最大的不同在于,ThreadLocalMap結(jié)構(gòu)非常簡(jiǎn)單,沒(méi)有next引用,也就是說(shuō)ThreadLocalMap中解決Hash沖突的方式并非鏈表的方式,而是采用線性探測(cè)的方式。(ThreadLocalMap如何解決沖突?

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

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

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

注意了!!

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

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

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

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

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

如何避免泄漏

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

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

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

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

審核編輯 :李倩


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

    關(guān)注

    0

    文章

    616

    瀏覽量

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

    關(guān)注

    0

    文章

    509

    瀏覽量

    20826
  • Thread
    +關(guān)注

    關(guān)注

    2

    文章

    93

    瀏覽量

    27469

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    探索LTC3121:高性能同步升壓DC/DC轉(zhuǎn)換器的應(yīng)用與設(shè)計(jì)秘籍

    探索LTC3121:高性能同步升壓DC/DC轉(zhuǎn)換器的應(yīng)用與設(shè)計(jì)秘籍 在電子工程師的世界里,電源管理芯片是電路設(shè)計(jì)中至關(guān)重要的一環(huán)。今天,我們就來(lái)深入探討一款功能強(qiáng)大的同步升壓DC/DC轉(zhuǎn)換器——LTC3121。 文件下載: LTC3121.pdf 一、LTC3121簡(jiǎn)介 LTC3121是一款具有真正輸出斷開和浪涌電流限制功能的同步升壓DC/DC轉(zhuǎn)換器。它采用12引腳、3mm×4mm熱增強(qiáng)型DFN封裝,擁有諸多出色的特性,適用于各種要求苛刻的應(yīng)用場(chǎng)景。 1. 電氣特性 輸入輸出電壓范圍 :輸入電壓范圍
    的頭像 發(fā)表于 03-06 14:35 ?8次閱讀

    翱捷科技攜手SURGE實(shí)現(xiàn)印尼首個(gè)1.4GHz 5G FWA商用部署

    翱捷科技在MWC Barcelona 2026期間宣布基于公司5G NR平臺(tái)ASR1901的多款5G CPE產(chǎn)品已進(jìn)入規(guī)?;慨a(chǎn)階段,并正式部署于印尼領(lǐng)先的數(shù)字基礎(chǔ)設(shè)施與連接服務(wù)提供商PT Solusi Sinergi Digital Tbk(IDX: WIFI, “SURGE”)主導(dǎo)的5G固定無(wú)線接入(FWA)網(wǎng)絡(luò)中。相關(guān)部署將重點(diǎn)面向家庭及企業(yè)固定寬帶接入需求,進(jìn)一步加快印尼固定寬帶基礎(chǔ)設(shè)施建設(shè)與數(shù)字化轉(zhuǎn)型進(jìn)程。
    的頭像 發(fā)表于 03-06 14:28 ?12次閱讀

    國(guó)家和省發(fā)改委領(lǐng)導(dǎo)蒞臨潤(rùn)芯微科技考察調(diào)研

    3月4日下午,國(guó)家發(fā)展改革委綜合司相關(guān)領(lǐng)導(dǎo),江蘇省發(fā)改委黨組成員、副主任林康一行蒞臨潤(rùn)芯微科技考察調(diào)研,深入了解企業(yè)技術(shù)創(chuàng)新、產(chǎn)業(yè)布局與高質(zhì)量發(fā)展情況。公司董事長(zhǎng)劉青、CTO張明俊、副總裁蘇杭等陪同調(diào)研。
    的頭像 發(fā)表于 03-06 14:26 ?14次閱讀

    線材如何錨定磁性元件高端標(biāo)準(zhǔn)

    現(xiàn)在客戶對(duì)線材產(chǎn)品的要求越來(lái)越極致:高頻場(chǎng)景要控?fù)p耗,緊湊型設(shè)計(jì)要提空間利用率,自動(dòng)化生產(chǎn)線要適配柔韌性,極端工況要穩(wěn)性能,少一樣都不行?!?線材行業(yè)企業(yè)大潤(rùn)科技技術(shù)負(fù)責(zé)人張工在接受《磁性元件與電源》專訪時(shí),精準(zhǔn)點(diǎn)出當(dāng)前磁性元件與電源行業(yè)對(duì)線材產(chǎn)品的核心需求。 深耕電磁線領(lǐng)域多年,大潤(rùn)科技早已跳出 “單純供應(yīng)線材產(chǎn)品” 的定位,以定制化技術(shù)、全周期協(xié)同破解行業(yè)轉(zhuǎn)型難題,成為磁元件企業(yè)高端化賽道的戰(zhàn)略伙伴。
    的頭像 發(fā)表于 03-06 14:22 ?17次閱讀
    線材如何錨定磁性元件高端標(biāo)準(zhǔn)

    LTC3118:高效雙輸入同步降壓 - 升壓DC/DC轉(zhuǎn)換器的設(shè)計(jì)秘籍

    LTC3118:高效雙輸入同步降壓 - 升壓DC/DC轉(zhuǎn)換器的設(shè)計(jì)秘籍 在電子工程師的日常設(shè)計(jì)工作中,電源管理模塊始終是核心環(huán)節(jié)。今天我要給大家詳細(xì)介紹一款在電源轉(zhuǎn)換領(lǐng)域表現(xiàn)卓越的產(chǎn)品——LTC3118,一款雙輸入、寬電壓范圍的同步降壓 - 升壓DC/DC轉(zhuǎn)換器。 文件下載: LTC3118.pdf 產(chǎn)品關(guān)鍵特性速覽 雙輸入與寬電壓范圍 :支持兩個(gè)獨(dú)立輸入電源 (V {IN1}) 和 (V {IN2}),輸入電壓范圍為 2.2V 至 18V,輸出電壓范圍為 2V 至 18V,無(wú)論輸入電壓高于、低于還是等于輸出電
    的頭像 發(fā)表于 03-06 14:20 ?23次閱讀

    LT8709:負(fù)輸入同步多拓?fù)銬C/DC控制器的深度解析

    LT8709:負(fù)輸入同步多拓?fù)銬C/DC控制器的深度解析 在電子工程師的設(shè)計(jì)工作中,DC/DC控制器是一個(gè)關(guān)鍵的組件,它直接影響著電源系統(tǒng)的性能和穩(wěn)定性。今天,我們就來(lái)詳細(xì)探討一下LINEAR TECHNOLOGY的LT8709負(fù)輸入同步多拓?fù)銬C/DC控制器。 文件下載: LT8709.pdf 一、產(chǎn)品概述 LT8709是一款用于負(fù)到負(fù)或負(fù)到正DC/DC轉(zhuǎn)換的同步PWM控制器,具備軌到軌輸出電流監(jiān)測(cè)和控制功能,非常適合各種本地電源設(shè)計(jì)。它可以輕松配置為降壓、升壓、降壓 - 升壓和反相拓?fù)洌m用于負(fù)
    的頭像 發(fā)表于 03-06 14:20 ?24次閱讀

    LTC3110:2A雙向降壓 - 升壓DC/DC調(diào)節(jié)器及充電器/平衡器的深度解析

    LTC3110:2A雙向降壓 - 升壓DC/DC調(diào)節(jié)器及充電器/平衡器的深度解析 在電子設(shè)備的設(shè)計(jì)中,電源管理模塊的性能直接影響著整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。LTC3110作為一款2A雙向降壓 - 升壓DC/DC調(diào)節(jié)器及充電器/平衡器,在眾多應(yīng)用場(chǎng)景中展現(xiàn)出了卓越的性能。本文將對(duì)LTC3110進(jìn)行全面的剖析,為電子工程師們?cè)谠O(shè)計(jì)過(guò)程中提供有價(jià)值的參考。 文件下載: LTC3110.pdf 一、產(chǎn)品概述 LTC3110是一款集成了電容器充電器和平衡器的2A雙向降壓 - 升壓DC/DC調(diào)節(jié)器。其具有0.1V至
    的頭像 發(fā)表于 03-06 14:20 ?24次閱讀

    LT8616:高效雙路同步降壓調(diào)節(jié)器的設(shè)計(jì)與應(yīng)用

    LT8616:高效雙路同步降壓調(diào)節(jié)器的設(shè)計(jì)與應(yīng)用 在電子設(shè)計(jì)領(lǐng)域,電源管理芯片的性能直接影響著整個(gè)系統(tǒng)的穩(wěn)定性和效率。今天我們要深入探討的是 Linear Technology 公司的 LT8616 雙路同步降壓調(diào)節(jié)器,它以其低靜態(tài)電流、寬輸入電壓范圍和高效的性能,在眾多應(yīng)用中展現(xiàn)出獨(dú)特的優(yōu)勢(shì)。 文件下載: LT8616.pdf 芯片概述 LT8616 是一款高效、高速的雙路同步降壓調(diào)節(jié)器,在兩路通道均啟用的情況下,靜態(tài)電流僅為 6.5μA。它的輸入電壓范圍極寬,從 3.4V 到 42V,能
    的頭像 發(fā)表于 03-06 14:20 ?25次閱讀

    解析CSD87350Q5D同步降壓NexFET?功率模塊

    解析CSD87350Q5D同步降壓NexFET?功率模塊 在電子設(shè)計(jì)領(lǐng)域,同步降壓轉(zhuǎn)換器的性能優(yōu)化一直是工程師們關(guān)注的焦點(diǎn)。TI推出的CSD87350Q5D同步降壓NexFET?功率模塊,憑借其出色的性能和獨(dú)特的設(shè)計(jì),在眾多同類產(chǎn)品中脫穎而出。下面,我們將深入剖析這款功率模塊的特點(diǎn)、應(yīng)用以及設(shè)計(jì)要點(diǎn)。 文件下載: csd87350q5d.pdf 一、產(chǎn)品概述 1.1 產(chǎn)品特性 CSD87350Q5D是一款半橋功率模塊,具有諸多令人矚目的特性: 高效節(jié)能 :在25A電流下,系統(tǒng)效率可達(dá)90%,能有效降低功
    的頭像 發(fā)表于 03-06 14:20 ?23次閱讀

    深入解析CSD17506Q5A:30V N-Channel NexFET?功率MOSFET的卓越性能與應(yīng)用

    深入解析CSD17506Q5A:30V N-Channel NexFET?功率MOSFET的卓越性能與應(yīng)用 在電子工程師的日常設(shè)計(jì)工作中,功率MOSFET是不可或缺的關(guān)鍵元件。今天,我們就來(lái)深入探討德州儀器(TI)推出的CSD17506Q5A 30V N-Channel NexFET?功率MOSFET,看看它究竟有哪些獨(dú)特之處,能在眾多同類產(chǎn)品中脫穎而出。 文件下載: csd17506q5a.pdf 產(chǎn)品概述 CSD17506Q5A采用SON 5-mm × 6-mm塑料封裝,具備超低的柵極電荷((Q {g})和(Q {gd}))、低熱阻、雪崩額定等特性。同時(shí),它還符合無(wú)鉛終端電鍍、RoHS標(biāo)
    的頭像 發(fā)表于 03-06 14:20 ?25次閱讀

    磁編碼器安裝工藝與技術(shù)規(guī)范

    磁編碼器作為高精度位置檢測(cè)核心部件,廣泛應(yīng)用于伺服電機(jī)、云臺(tái)、機(jī)器人等設(shè)備,其安裝質(zhì)量直接決定測(cè)量精度、運(yùn)行穩(wěn)定性及使用壽命。本文結(jié)合工業(yè)實(shí)操標(biāo)準(zhǔn),從安裝準(zhǔn)備、核心工藝、技術(shù)規(guī)范、調(diào)試校準(zhǔn)及維護(hù)要點(diǎn)五個(gè)維度,系統(tǒng)梳理 1500 字以內(nèi)的關(guān)鍵技術(shù)內(nèi)容,為工程應(yīng)用提供精準(zhǔn)指導(dǎo)。
    的頭像 發(fā)表于 03-06 14:16 ?19次閱讀

    深度剖析CSD86330Q3D同步降壓NexFET?功率模塊

    深度剖析CSD86330Q3D同步降壓NexFET?功率模塊 在電子設(shè)計(jì)領(lǐng)域,功率模塊的性能直接影響著整個(gè)系統(tǒng)的效率和穩(wěn)定性。今天,我們將深入探討德州儀器(TI)的CSD86330Q3D同步降壓NexFET?功率模塊,從其特性、應(yīng)用、規(guī)格參數(shù)到PCB設(shè)計(jì)等方面進(jìn)行詳細(xì)分析。 文件下載: csd86330q3d.pdf 一、CSD86330Q3D的特性亮點(diǎn) 1. 高效性能 CSD86330Q3D在15A電流下能實(shí)現(xiàn)90%的系統(tǒng)效率,最高可支持20A的工作電流。同時(shí),它具備高頻工作能力,最高可達(dá)1.5MHz,能夠滿足許多對(duì)效率和頻率要
    的頭像 發(fā)表于 03-06 14:15 ?24次閱讀

    探秘CSD87351Q5D:高效同步降壓NexFET?功率模塊的卓越性能與應(yīng)用

    探秘CSD87351Q5D:高效同步降壓NexFET?功率模塊的卓越性能與應(yīng)用 在電子設(shè)計(jì)的廣闊領(lǐng)域中,電源模塊的性能直接影響著整個(gè)系統(tǒng)的效率、穩(wěn)定性和可靠性。今天,我們將深入探討TI推出的CSD87351Q5D同步降壓NexFET?功率模塊,一起揭開它的神秘面紗。 文件下載: csd87351q5d.pdf 1. 產(chǎn)品概述 CSD87351Q5D是一款專為同步降壓應(yīng)用優(yōu)化設(shè)計(jì)的功率模塊,它在一個(gè)小巧的5mm×6mm外形尺寸內(nèi),實(shí)現(xiàn)了高電流、高效率和高頻率的能力。該模塊采用了TI最新一代的硅技術(shù),優(yōu)化
    的頭像 發(fā)表于 03-06 14:15 ?25次閱讀

    深入解析CSD17505Q5A:一款高性能30V N溝道功率MOSFET

    深入解析CSD17505Q5A:一款高性能30V N溝道功率MOSFET 在當(dāng)今的電子設(shè)計(jì)領(lǐng)域,功率MOSFET的性能對(duì)于電源轉(zhuǎn)換效率和系統(tǒng)穩(wěn)定性起著至關(guān)重要的作用。今天,我們就來(lái)詳細(xì)探討一下德州儀器(TI)推出的CSD17505Q5A,一款30V N溝道NexFET?功率MOSFET。 文件下載: csd17505q5a.pdf 一、特性亮點(diǎn) 低損耗設(shè)計(jì) CSD17505Q5A專為最小化功率轉(zhuǎn)換應(yīng)用中的損耗而設(shè)計(jì)。其超低的柵極電荷((Q {g}) 和 (Q {gd}))特性,能夠有效減少開關(guān)損耗,提高開關(guān)速度,進(jìn)而提升整個(gè)系統(tǒng)的效率。這
    的頭像 發(fā)表于 03-06 14:15 ?24次閱讀

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

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