码迷,mamicode.com
首页 > 其他好文 > 详细

ThreadLocal源码阅读笔记

时间:2015-05-02 21:59:54      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

  JDK上对于ThreadLocal的说明是“该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal 实例通常是类中的 private static 字段,它们希望将状态与某一个线程(例如,用户 ID 或事务 ID)相关联。”由此可见,ThreadLocal保存的是线程自己变量,其他线程是不可见的。

  在ThreadLocal的实现中,定义了一个嵌套类ThreadLocalMap。该类也定义了一个嵌套类Entry,用以存放线程的一个局部变量。ThreadLocalMap定义了一个Entry数组,用以存放线程的多个局部变量。每个局部变量都以ThreadLocal对象为键,T类型对象为值(T为ThreadLocalMap<T>中的T类型)。而在Thread类中定义了一个ThreadLocalMap类型的对象map,这些局部变量都放在这个对象内。

  提供的方法:

        

 T get() 
          返回此线程局部变量的当前线程副本中的值。
protected  T initialValue() 
          返回此线程局部变量的当前线程的“初始值”。
 void remove() 
          移除此线程局部变量当前线程的值。
 void set(T value) 
          将此线程局部变量的当前线程副本中的值设置为指定值。

ThreadLocal源码阅读笔记

标签:

原文地址:http://www.cnblogs.com/denghuan/p/4472504.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!