ThreadLocal
在移动端开发中很少会使用到这个类,首先来说明一下,该类是干什么的。
在多线程环境下用来保证,线程变量不会被其他线程可见,当前线程独享。
那么我们通过一个故事来说明一下。
假设我们每一个人都是一个线程。而ThreadLocal是一个打柜子的师傅。
你刚出生的时候,也就是 线程刚被 new 出来的时候,这个时候呢,你手里面已经有了一个可以打柜子的地方,但是这个地方是没有实体柜子的也就是空的(null),也是就是每一个线程里面都会有一个ThreadLocalMap对象的引用,这个地方好好体会一下,是不是很形象。
有一天你觉得这个地方如果不放上柜子的话,太浪费了,在现在这个寸土寸金的年代,不行我要打上柜子才行,有点私人物品需要放在里面,那么这个时候你就找到了 号称 java 界的鲁班大师,ThreadLocal 先生。
你:先生我想要打一个柜子。
TL:没有问题,我的手艺跟鲁班大师有的一比。
TL:您是打一个新的柜子,还是说原来有柜子了,找我来换把锁就行。
你:我需要新做一个,有些私人东西,需要放在里面。不能被其他人看见才行。
TL:您放心,我在钥匙在 ,我丢钥匙也不能丢。
TL:哒哒哒干了一上午,一个漂亮的柜子终于完工了。
你:谢谢师傅。我要把我的,所有金银首饰都放在里面,还用袋子给装一下,(就是 ThreadLocalMap 中的 val