侧边栏壁纸
  • 累计撰写 22 篇文章
  • 累计创建 10 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

ThreadLocal原理

AF
AF
2023-11-08 / 0 评论 / 0 点赞 / 38 阅读 / 722 字

threadLocal知识:

实现原理:

每个Thread中存储着一个成员变量, ThreadLocalMap(真正存储数据的地方)

ThreadLocal 本身不存储数据,像是一个工具类,基于ThreadLocal去操作ThreadLocalMap

ThreadLocalMap是ThreadLocal的内部类,本身是基于Entry[]实现的,因为一个线程可以绑定多个ThreadLocal,这样一来,可能需要存储多个数据,所以采用Entry[]的形式实现

每一个现有自己独立的ThreadLocalMap ,再基于ThreadLocal对象本身作为key,对value进行存取

ThreadLocalMap的key是一个弱引用,弱引用的特点是,即便有弱引用,在GC时,也必须被回收,这里是为了在ThreadLocal对象失去引用后,如果key的引用是强引用,会导致ThreadLocal对象无法被回收

0

评论区