ThreadLocal

1、ThreadLocal的做用

threadLocal又叫作線程本地存儲,它不是爲了解決線程安全問題的,它是爲了讓每個線程都擁有本身獨立的變量。數據庫

2、ThreadLocal原理

線程類Thread中有一個ThreadLocals變量,它的類型是ThreadLocalMap。安全

threadLocal就是將自身對象做爲key,須要保存的變量做爲value,保存到threadLocalMap中。session

這樣,每個線程就能夠單獨保存一個副本。this

public T get(){
    Thread t = Thread.currentThread();
    ThreadLocalMap map = getMap(t);
    if(map != null){
        TreadLocalMap.Entry e = map.getEntry(this);
        if(e != null){
            return (T)e.value;
        }
    }
    return setInitialValue();
}

3、應用

能夠用在解決數據庫鏈接,session管理中。每個線程只須要初始化一次鏈接。線程

相關文章
相關標籤/搜索