java | 多线程 | ThreadLocal

场景:
web app中,每个request都会有一个Thread去处理,但是多个request可能对应一个资源:userInfo,常用ThreadLocal来存储userInfo。

网上搜,ThreadLocal的定义,大概就是:让每个线程访问ThreadLocal的共享变量,互不影响。好像懂了又没懂?

不妨想想,为什么要有ThreadLocal?我简单理解为:决多线程访问共享变量安全。

设想一下,如果没有加以限制,两个线程去操作同一个变量可能会有问题,比如并发,死锁等等,当然你也可以用synchronized解决。如果不用呢,就靠ThreadLocal了。

ThreadLocal里面假如有一个变量a,他会给每个线程都提供一个副本a,这样,就可以使得每个线程就有自己的a,各线程操作自己的a也互相不影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值