最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于ThreadLocal和InheritableThreadLocal解析

 更新時間:2025年03月31日 09:23:28   作者:Old Wang  
這篇文章主要介紹了關(guān)于ThreadLocal和InheritableThreadLocal解析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、兩者區(qū)別

  • ThreadLocal:為每一個線程創(chuàng)建一個副本,每個副本線程隔離。但是他不支持繼承。
  • InheritableThreadLocal:支持繼承。這里的繼承不是extends,是指線程的繼承。也就是說新起一個線程可以擁有老線程的數(shù)據(jù)。

二、原理

這里要先說另一個概念ThreadLocalMap。他和普通map差不多,也是key-value結(jié)構(gòu),key為threadlocal對象,value為你設(shè)置的值。

為什么這里要用map,因為可能有多個ThreadLocal對象。所以這個map可以理解為倉庫,存儲數(shù)據(jù)的倉庫。

在Thread類我們可以看到如下分別創(chuàng)建2個 ThreadLocalMap對象。用來存儲數(shù)據(jù)。

繼續(xù)追蹤,查找它是什么時候被賦值的(分為ThreadLocal實現(xiàn)和InheritableThreadLocal實現(xiàn))。

  • ThreadLocal:在ThreadLocal類的set方法,它調(diào)用當前線程獲取ThreadLocalMap,如果沒有就new一個

  • InheritableThreadLocal:重寫了getMap和createMap兩個方法。

OK,我們知道是怎么賦值的,那么InheritableThreadLocal是怎么做到繼承(值傳遞)的呢?

在Thread的init方法里我們看到如下的賦值語句:

在初始化時候獲取當前線程的inheritableThreadLocals(這是新線程的初始化,但是currentThread獲取的還是老線程),把它賦值到新線程的屬性里去,這樣新線程就有值了。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 將Arthas整合到Java業(yè)務(wù)鏡像中的流程步驟

    將Arthas整合到Java業(yè)務(wù)鏡像中的流程步驟

    在現(xiàn)代Java應(yīng)用開發(fā)中,診斷和調(diào)試是一個不可或缺的環(huán)節(jié),Arthas,作為阿里巴巴開源的一款Java診斷工具,提供了一種在不修改代碼的情況下,實時監(jiān)控、診斷和調(diào)試Java應(yīng)用程序的解決方案,本文將詳細介紹Arthas的基本概念,并逐步指導如何將其整合到Java業(yè)務(wù)鏡像中
    2025-02-02
  • springboot+thymeleaf+shiro標簽的實例

    springboot+thymeleaf+shiro標簽的實例

    這篇文章主要介紹了springboot+thymeleaf+shiro標簽的實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 通過Java實現(xiàn)文件斷點續(xù)傳功能

    通過Java實現(xiàn)文件斷點續(xù)傳功能

    用戶上傳大文件,網(wǎng)絡(luò)差點的需要歷時數(shù)小時,萬一線路中斷,不具備斷點續(xù)傳的服務(wù)器就只能從頭重傳,而斷點續(xù)傳就是,允許用戶從上傳斷線的地方繼續(xù)傳送,這樣大大減少了用戶的煩惱。本文將用Java語言實現(xiàn)斷點續(xù)傳,需要的可以參考一下
    2022-05-05
  • Spring Boot 鉤子全集實戰(zhàn)EnvironmentPostProcessor全解

    Spring Boot 鉤子全集實戰(zhàn)EnvironmentPostProcessor全解

    文章詳細介紹了SpringBoot中的EnvironmentPostProcessor擴展點,該點在配置加載階段提供強大的定制化能力,適用于配置中心化、加密解密、動態(tài)覆蓋和校驗等場景,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • Java 中比較兩個 long 類型變量大小的方法(實例詳解)

    Java 中比較兩個 long 類型變量大小的方法(實例詳解)

    比較兩個long類型變量的大小時,由于是基本數(shù)據(jù)類型,直接使用Java 內(nèi)置的關(guān)系運算符即可,這些運算符比較的是變量的實際值,而非內(nèi)存地址,下面給大家介紹Java中比較兩個long類型變量大小的方法,感興趣的朋友一起看看吧
    2025-06-06
  • 關(guān)于批量插入或更新數(shù)據(jù)(MyBatis-plus框架)

    關(guān)于批量插入或更新數(shù)據(jù)(MyBatis-plus框架)

    這篇文章主要介紹了關(guān)于批量插入或更新數(shù)據(jù)(MyBatis-plus框架),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • java上乘武功入門--反射

    java上乘武功入門--反射

    反射是Java的一種機制,一般也叫做反射機制,本文會講反射機制是什么和怎么使用,喜歡的朋友可以觀看一下,希望能給你帶來幫助
    2021-07-07
  • java實戰(zhàn)小技巧之優(yōu)雅的實現(xiàn)字符串拼接

    java實戰(zhàn)小技巧之優(yōu)雅的實現(xiàn)字符串拼接

    字符串拼接是我們在Java代碼中比較經(jīng)常要做的事情,就是把多個字符串拼接到一起,這篇文章主要給大家介紹了關(guān)于java實戰(zhàn)小技巧之優(yōu)雅的實現(xiàn)字符串拼接的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • 簡單介紹一下什么是microservice微服務(wù)

    簡單介紹一下什么是microservice微服務(wù)

    這篇文章主要介紹了一下什么是microservice微服務(wù)微服務(wù)的定義,微服務(wù)到底是什么意思?什么樣的架構(gòu)可以叫做微服務(wù)?這篇文章可以給你答案
    2023-03-03
  • 并行Stream與Spring事務(wù)相遇會發(fā)生什么?

    并行Stream與Spring事務(wù)相遇會發(fā)生什么?

    這篇文章主要介紹了并行Stream與Spring事務(wù)相遇會發(fā)生什么?文章主要解決實戰(zhàn)中的Bug及解決方案和技術(shù)延伸,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05

最新評論

昭通市| 微博| 伽师县| 连城县| 精河县| 鱼台县| 高淳县| 禄丰县| 迭部县| 毕节市| 万安县| 永泰县| 巴彦县| 平定县| 秦安县| 南溪县| 怀远县| 北票市| 龙山县| 手游| 凉城县| 桐梓县| 应城市| 石家庄市| 新民市| 黔江区| 杭锦后旗| 彭阳县| 河南省| 盐城市| 苍梧县| 广平县| 鄂托克前旗| 西昌市| 蒙自县| 五大连池市| 平南县| 甘洛县| 武定县| 贵定县| 长白|