使用ThreadLocal的思考

简介: 使用ThreadLocal的思考

正文


一般情况下,在使用ThreadLocal时,我们创建的方式如下:

12.png

但是,发现,在创建的时候,设置了一个初始值的方法。那么这个初始值的方法,在怎么时候调用呢?怎么调用呢?

13.png

哎,我们发现,在同一个线程中,仅仅调用了一次,那不同线程呢?代码修改成了下面的

14.png

运行结果发现,实际上,在不同的线程中,第一次调用get方法,是执行初始化方法的。

15.png

如果想在同一个线程中多次调用,应该怎么办,初步的猜测是将这个保存的值废弃掉,然后再次获取初始值。

16.png

运行结果如下:

17.png


总结来说,ThreadLocal的初始化方法在什么时候调用呢?通常情况下,每一个线程仅仅可以调用一次,但是将原始值移除后,还可以继续地调用。通过get的方法我们也会知道底层的运行过程。


18.png

相关文章
|
存储 安全 Java
【ThreadLocal】
【ThreadLocal】
|
5月前
|
Java
ThreadLocal 场景题
ThreadLocal 场景题
35 1
|
4月前
|
存储 监控 Java
ThreadLocal详解
ThreadLocal详解
66 0
|
存储 算法 安全
深入详解ThreadLocal
在我们日常的并发编程中,有一种神奇的机制在静悄悄地为我们解决着各种看似棘手的问题,它就是 ThreadLocal 。
21513 9
深入详解ThreadLocal
|
11月前
|
存储
ThreadLocal
ThreadLocal
52 0
|
存储 安全 Java
ThreadLocal介绍和应用
ThreadLocal介绍和应用
63 0
|
缓存 安全 Java
浅谈ThreadLocal
浅谈ThreadLocal
146 0
|
存储 Java
|
存储 Java
ThreadLocal相关使用
ThreadLocal相关使用
192 0
ThreadLocal相关使用
|
存储 Java
对threadlocal了解多少?
通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。如果想实现每一个线程都有自己的专属本地变量该如何解决呢? JDK 中提供的 ThreadLocal 类正是为了解决这样的问题。 ThreadLocal 类主要解决的就是让每个线程绑定自己的值,可以将 ThreadLocal 类形象的比喻成存放数据的盒子,盒子中可以存储每个线程的私有数据。