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);  
    }  

操作的是类中会被多个对象操作的变量:

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