* 不是爲了解決多線程共享變量問題 *
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);
}
操作的是類中會被多個對象操作的變量: