java-ThreadLocal的实现
2016-01-22 17:39
501 查看
1.每个线程内部都维护一个ThreadLocalMap。
2.
3.
get的时候获取线程上的ThreadLocalMap,以 ThreadLocal为key取出value
ThreadLocal.ThreadLocalMap threadLocals = null;
2.
ThreadLocal的set:
public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) map.set(this, value); else createMap(t, value); }set的时候以ThreadLocal为key,放入在线程内部的ThreadLocalMap中。
3.
<pre name="code" class="java">ThreadLocal的get:
public T get() { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) { ThreadLocalMap.Entry e = map.getEntry(this); if (e != null) return (T)e.value; } return setInitialValue(); }
get的时候获取线程上的ThreadLocalMap,以 ThreadLocal为key取出value
相关文章推荐
- springMVC环境搭建-4
- java volatile关键字解析
- eclipse + jni +lame
- spring+mybatis利用interceptor(plugin)兑现数据库读写分离
- spring下的文件上传、下载与删除
- mysql+spring+mybatis实现数据库读写分离
- java多线程
- 解决有java命令,没有javac命令
- Myeclipse10下搭建SSH框架(图解)Struts2.1+Spring3.0+Hibernate3.3
- Java URI 中的 getSchemeSpecificPart() 方法
- Java URI 中的 getSchemeSpecificPart() 方法
- 《实战Java高并发程序设计》问答录,看这些问题解决你所有java并行难题
- Java中的多态
- java实现ping功能的几种方法
- Java note
- JSR356标准Java WebSocket
- javascrip笔记——图片加载
- Eclipse常用快捷键
- 深入分析JavaWeb Item1 -- JavaWeb开发入门
- 运行Jmeter.bat出错:Not able to find java executor or version. Please check your installation. errorlevel=2