首页 > 其他分享 >ThreadLocal底层原理

ThreadLocal底层原理

时间:2024-03-13 14:02:04浏览次数:16  
标签:每个 ThreadLocalMap 变量值 ThreadLocal 线程 key 原理 底层

ThreadLocal 是 Java 中的一个线程局部变量工具类,它允许每个线程都有自己独立的变量副本,而不会相互干扰。ThreadLocal 的底层原理涉及到 ThreadLocalMapThread 类。

ThreadLocal 内部,使用一个 ThreadLocalMap 对象来存储每个线程对应的变量值。当调用 set() 方法设置变量值时,实际上是将当前线程作为 key,将要设置的值作为 value 存储到当前线程的 ThreadLocalMap 中;当调用 get() 方法获取变量值时,ThreadLocal 会通过当前线程作为 key 在 ThreadLocalMap 中查找对应的值并返回。

在多线程环境下,每个线程都拥有自己的 ThreadLocalMap,这样就能保证线程之间的变量相互隔离,不会相互影响。当线程结束时,ThreadLocalMap 会被一同销毁,从而避免内存泄漏。

需要注意的是,由于 ThreadLocal 的特殊性(即每个线程拥有一份独立的变量副本),在使用过程中需要特别小心,避免出现内存泄漏和数据混乱的情况。

标签:每个,ThreadLocalMap,变量值,ThreadLocal,线程,key,原理,底层
From: https://blog.csdn.net/weixin_43106895/article/details/136648644

相关文章

  • redis集群原理
    Redis集群是Redis数据库的分布式解决方案,用于提高性能、扩展性和容错能力。以下是Redis集群的一些核心原理:数据分片(Sharding):Redis集群通过将数据分片存储在多个节点上来实现水平扩展。每个节点只负责部分数据的存储和处理,从而分担整个系统的负载。主从复制(Master-Slave......
  • 02-defaultdic类工作原理及应用实例(全网最全?含常值函数的创建)
    经常看到说“优雅地书写代码”,总是没啥感觉,直到这两天认真查阅了defaultdic这个类的一些资料。原来,灵活的应用,真的可以这么优雅、简单。1 简要描述defaultdic是collections包中的一个扩展类,是内置dict类的子类。这个类比较简单,除了重写了dict类的__miss__方法,增加了一个......
  • 无线通信卡设计原理图:410-基于XCVU9P+ C6678的100G光纤的加速卡 高速数据采集卡
     一、板卡概述   二、技术指标 •  板卡为自定义结构,板卡大小332mmx260mm; •  FPGA采用Xilinx Virtex UltralSCALE+ 系列芯片 XCVU9P; •  FPGA挂载4组FMC HPC 连接器; •  板载4路QSPF+,每路数据速率100Gb/s; •  DSP处理器采用TI 8核处理器......
  • 交换机的二、三、四层交换技术,教科书式的工作原理解释
    1交换机交换机的工作原理交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中。交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发。如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过......
  • CAP原理--一起学习吧之架构
    CAP定理为我们理解和设计分布式系统提供了重要的指导原则,它提醒我们在不同的场景下需要根据实际需求来权衡和选择一致性、可用性和分区容错性之间的平衡。二一、定义CAP定理,又被称为CAP原则,是指在一个分布式系统中,一致性(Consistency)、可用性(Availability)和分区容错性(Partitio......
  • 多线程系列(十八) -AQS原理浅析
    一、摘要在之前的文章中,我们介绍了ReentrantLock、ReadWriteLock、CountDownLatch、CyclicBarrier、Semaphore、ThreadPoolExecutor等并发工具类的使用方式,它们在请求共享资源的时候,都能实现线程同步的效果。在使用方式上稍有不同,有的是独占式,多个线程竞争时只有一个线程能执......
  • repmgr选举原理
    从墨天轮上看到一篇非常详细的repmgr的选举原理文章https://www.modb.pro/db/17170614490157137921)很不幸,由于某种原因主库A节点down掉了2)B,C,D尝试等待重连主库A节点:checkingstateofnode1,Nof6attempts…3)连接超时后,BCD会各自进入选举的过程:由于D的location......
  • sharding-jdbc原理
    分片流程一、sql解析从3.0.x版本开始,ShardingSphere统一将SQL解析器换成了基于antlr4实现,目的是为了更方便、更完整的支持SQL,例如对于复杂的表达式、递归、子查询等语句,因为后期ShardingSphere的定位已不仅仅是数据分片功能。抽象语法树根据不同数据库方言所提供的字......
  • 浅谈非内存对抗类和AI自瞄类FPS作弊程序原理及常用反反作弊措施与反作弊应对手段(上)
    一、引言    闲来无事,在浏览微信公众号的时候无意刷到了江西余江警方关于破获全国首例“AI自瞄”类外挂的案件,涉案金额达到惊人的3000余万。不得不感叹近年来AI相关科技发展之迅速及国内有关于FPS类及其他大类游戏作弊的黑产市场之大。    在工作学习之余,......
  • Elasticsearch探秘:原理剖析、高级运用与实战经验【文末送书-37】
    文章目录Elasticsearch探秘:原理剖析、高级运用与实战经验进阶使用方法数据建模与映射实战工程案例索引阻塞的种类什么时候使用阻塞?一本书讲透Elasticsearch:原理、进阶与工程实践【文末送书-37】Elasticsearch探秘:原理剖析、高级运用与实战经验Elasticsearch作为一个......