什么是ThreadLocal变量?
ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。
(1). 通过ThreadLocal创建的副本是存储在每个线程自己的threadLocals中的;
(2). 为何threadLocals的类型ThreadLocalMap的键值为ThreadLocal对象,因为每个线程中可有多个threadLocal变量,就像上面代码中的longLocal和stringLocal;
(3). 在进行get之前,必须先set,否则会报空指针异常;如果想在get之前不需要调用set就能正常访问的话,必须重写initialValue()方法。
最常见的ThreadLocal使用场景为 用来解决 数据库连接、Session管理等
相关文章
- 01-04函数中声明变量不用Var的情况
- 01-04测一下变量申请的速度
- 01-04ECMAScript 6 入门之变量的解构赋值(part2)
- 01-04ECMAScript基本语法——④变量
- 01-04ECMAScript 6-变量的结构赋值
- 01-04JS语言基础-ECMAScript 1-区分大小写、标识符、注释、严格模式、语句、关键字与保留字、变量
- 01-04ECMAScript---变量
- 01-04将a、b的值进行交换,并且不使用任何中间变量
- 01-04python day1 变量的命名和赋值
- 01-04基础总结深入:数据类型的分类和判断(数据、内存、变量) 对象 函数 回调函数 IIFE 函数中的this 分号