ThreadLocal变量

 

什么是ThreadLocal变量?
ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。
(1). 通过ThreadLocal创建的副本是存储在每个线程自己的threadLocals中的;
(2). 为何threadLocals的类型ThreadLocalMap的键值为ThreadLocal对象,因为每个线程中可有多个threadLocal变量,就像上面代码中的longLocal和stringLocal;
(3). 在进行get之前,必须先set,否则会报空指针异常;如果想在get之前不需要调用set就能正常访问的话,必须重写initialValue()方法。
最常见的ThreadLocal使用场景为 用来解决 数据库连接、Session管理等

posted @ 2017-03-30 11:46  飞影流沙  阅读(526)  评论(0编辑  收藏  举报