inheritablethreadlocal使用方法(threadlocal使用场景一般怎么用的)

inheritablethreadlocal使用方法(threadlocal使用场景一般怎么用的)

首页维修大全综合更新时间:2024-01-16 18:33:25

inheritablethreadlocal使用方法

InheritableThreadLocal用于子线程继承父线程的数值。将通过重写initialValue() 与childValue(Object parentValue)两个方法来展示例子。
其中initialValue()是InheritableThreadLocal类继承于ThreadLocal类的,用于初始化当前线程私有初始值,childValue(Object parentValue)是InheritableThreadLocal类的,作用是继承父线程的初始值并且进一步处理。

示例:

输出

结论:通过情况1和结果可以看出,子线程继承父线程值时,得父线程已经初始化过值后,否则子线程则自身调用initialValue()来初始化数值,并且不走childParent方法,此时与使用ThreadLocal(用于声明每个线程自身独有的值)无异。

子线程在父线程已经初始化值的情况下,不调用initiaValue()方法来初始化值,而是走childValue来返回数值,无论是否重写过该方法,因为该方法本身就是返回父线程的数值。下面是该方法的源码,可以看到是返回parentValue的值。

大家还看了
也许喜欢
更多栏目

© 2021 3dmxku.com,All Rights Reserved.