ThreadLocal 原理

ThreadLocal 线程本地变量

ThreadLocal 线程本地变量,即每个线程可以有属于自己的变量副本,其他线程无法访问自己内部的副本变量(每个Thread线程内部都有一个ThreadLocalMap,key为使用弱引用的ThreadLocal实例,value为线程变量的副本ThreadLocal是一个弱引用。

1.ThreadLoca 是线程局部变量,在于每个访问该变量的线程,在线程内部都会初始化一个独立的变量副本,只有该线程可以访问【get() /set()】访问自己内部的副本变量,ThreadLocal实例通常声明为 private static。

2.线程在存活并且ThreadLocal实例可被访问时,每个线程隐含持有一个线程局部变量副本,当线程生命周期结束时,ThreadLocal的实例的副本跟着线程一起消失,被GC垃圾回收(除非存在对这些副本的其他引用)

ThreadLocal作用:确保在同一个线程下运作,调用的多个方法,他们可以共享同一份数据。

ThreadLocal的API

  • set(T value):将线程局部变量当前副本中的值设置为指定值

  • get():返回此线程局部变量当前副本中的值

  • initialValue():返回此线程局部变量当前副本中的初始值

  • remove():移除此线程局部变量当前副本中的值

ThreadLocal的set()

 ThreadLocal的get()

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值