ThreadLocal

* 不是爲了解決多線程共享變量問題 *
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);  
    }  

操作的是類中會被多個對象操作的變量:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章