ThreadLocal是线程局部变量,是线程的私有变量,ThreadLocal提供静态属性与Thread关联。
例如:
ThreadLocalDemo类用来存放数据
线程:
ThreadDemo类是线程,将data数据保存到ThreadLocalDemo类中间
创建thread1和thread2线程对象,启动线程:
线程1和线程2对应的ThreadLocalDemo的静态属性count是同一个属性。
ThreadLocal就是用来解决类似问题,可以让两个线程具有本身私有的局部变量。
修改ThreadLocalDemo类代码如下:
程序运行结果:线程1和线程2的数据互不相关。
总结:
ThreadLocal为线程保存属于当前线程的局部数据。
原理:
在Thread线程中间有一个ThreadLocalMap,ThreadLocal来操作这个Map,存储数据
ThreadLocalMap是ThreadLocal的一个内部类:
比如:
我们每个人在某宝购物的时候,就是一个线程,我们的支付宝就是一个ThreadLocalMap,阿里巴巴就是ThreadLocal,阿里巴巴可以通过操作我们的支付宝,显示数据的存取
0条评论
点击登录参与评论