ThreadLocal 理解
Posted unclehu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThreadLocal 理解相关的知识,希望对你有一定的参考价值。
主要方法
public void set(T value); public T get(); private T setInitialValue(); public void set(T value) { Thread t = Thread.currentThread(); //得到当前线程 ThreadLocalMap map = getMap(t); //取得当前线程的ThreadLocalMap if (map != null) map.set(this, value); //设置当前Threadlocal的值 else createMap(t, value); } public T get() { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) { ThreadLocalMap.Entry e = map.getEntry(this); //以当前线程的ThreadLocal为key 取得值 if (e != null) { @SuppressWarnings("unchecked") T result = (T)e.value; return result; } } return setInitialValue(); } private T setInitialValue() { T value = initialValue(); Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null) map.set(this, value); else createMap(t, value); return value; }
以上是关于ThreadLocal 理解的主要内容,如果未能解决你的问题,请参考以下文章