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管理中。每个线程只须要初始化一次链接。线程

相关文章
相关标签/搜索