* 不是为了解决多线程共享变量问题 *
ThreadLocal实例通常来说都是private static类型。
threadLocal: 为每一个使用该变量的线程都提供一个在threadLocal中定义的synchronizedMap
public class ThreadLocal<T> {
private Map values = Collections.synchronizedMap(new HashMap());
public T get() {
Thread t = Thread.currentThread();
ThreadLocalMap map = getMap(t);
if (map != null)
return (T)map.get(this);
T value = initialValue();
createMap(t, value);
return value;
}
public void set(T value) {
Thread t = Thread.currentThread();
ThreadLocalMap map = getMap(t);
if (map != null)
map.set(this, value);
else
createMap(t, value);
}
操作的是类中会被多个对象操作的变量: