ThreadLocal

1.ThreadLocal的原理:
ThreadLocal一般称为线程本地变量,是一个特殊的线程绑定机制,
将线程和变量绑定在一起,为每一个线程维护一个独立的变量副本。
通过ThreadLocal可以将对象的可见范围限制在同一个线程内,
而不会和其他线程的副本冲突。

2.最常见的ThreadLocal应用场景:
2.1 用来解决 数据库连接、session管理
2.2 缓存经常需要的对象
2.3 使用线程保持状态(用户id、事务id、日志-id)

3.ThreadLocal的好处
T hreadLocal为解决多线程程序的并发问题提供了一种新的思路。 ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一 些

4.ThreadLocal基本用法
就是创建一个对象,然后每个线程去访问时,访问的是这个对象的副本。即该对象会为每个线程拷贝出一个副本。
ThreadLocal threadLocalOld = new ThreadLocal(){
@Override
protected String initialValue() {
return new String(“dsadsa”);
}
};
Thread thread = new Thread(()->{
//每个线程调度get函数获取本线程的副本。
String s = threadLocalOld.get();
// set函数set的值,只会设置本线程的值,不会对其他线程有任何影响。
threadLocalOld.set(“dsad”);
});
Thread thread1 = new Thread(()->{
//ThreadLocal效果定义local variable类似。
String s = new String(“dsadsa”);
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值