首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JDK的ThreadLocal懂得(二.2)原理篇

2013-08-13 
JDK的ThreadLocal理解(二.2)原理篇/* ThreadLocal values pertaining to this thread. This map is mainta

JDK的ThreadLocal理解(二.2)原理篇
/* ThreadLocal values pertaining to this thread. This map is maintained * by the ThreadLocal class. */ ThreadLocal.ThreadLocalMap threadLocals = null;

?细心阅读Thread源代码会发现:Thread类有1个实例变量,每创建1个线程对象都会拥有自己的成员变量,不存在数据共享问题。

1、细心阅读Thread的源代码就会发现,JDK只是定义(声明)了该变量并赋予初值null,但是不会创建ThreadLocal.ThreadLocalMap对象,这是因为: 创建1个线程的时候,大多数时候我们是不使用这个变量的。所以这样做可以减少不必要的对象创建,减少创建线程的开销

2、ThreadLocal.ThreadLocalMap threadLocals的创建(生成对象)是在ThreadLocal中的。这是因为:ThreadLocal.ThreadLocalMap threadLocals就是为了ThreadLocal服务的,除了ThreadLocal,没有别的地方会需要使用Thread类的这个成员变量。

?


?

?

热点排行