Threadlocal能干啥

以前都只知道他保存了当前线程变量的一个副本,却不知道他到底能干啥,而且说这个保存了当前线程的副本也是很抽象的,怎么理解这玩意。

 

下面老哥带你进入Threadlocal。

Threadlocal能干啥?

你可以吧Threadlocal想象成一个redis,Threallocal里面维护了一个叫做ThreadlocalMap的变量,使用key,value存储,重点来了。

比如我们有多个线程需要去操作一个变量,要求他们操作要互不影响,这个使用我们会怎么办,我们将thread当做key存放在redis里面,那个变量存在value里面对不对? <thread  , value>   。

巧了这不是,Threadlocal也是这样干的。它里面那个threadlocalmap就是使用thread当做key,目的区别不同的线程。

当有一个线程过来,我们就去里面通过当前线程获取那个value。 然后对他进行操作。

 

综上所述: 我们会发现Threadlocal也是线程安全的,为什么? 因为每一个线程都去操作自己的key ,就不存在并发操作了,对不对。

 

应用场景,多线程的地方: 比如数据库连接管理,session管理。都可以使用到这个数据。

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值