正文
一般情况下,在使用ThreadLocal时,我们创建的方式如下:
但是,发现,在创建的时候,设置了一个初始值的方法。那么这个初始值的方法,在怎么时候调用呢?怎么调用呢?
哎,我们发现,在同一个线程中,仅仅调用了一次,那不同线程呢?代码修改成了下面的
运行结果发现,实际上,在不同的线程中,第一次调用get方法,是执行初始化方法的。
如果想在同一个线程中多次调用,应该怎么办,初步的猜测是将这个保存的值废弃掉,然后再次获取初始值。
运行结果如下:
总结来说,ThreadLocal的初始化方法在什么时候调用呢?通常情况下,每一个线程仅仅可以调用一次,但是将原始值移除后,还可以继续地调用。通过get的方法我们也会知道底层的运行过程。