zzh

zzh

InheritableThreadLocal获取父线程的threadLocal值

1、get () 与 set () 方法
  • get()
    image

  • set()

image

其中我们可以看到两个方法均使用了 getMap 方法来获取 ThreadLocalMap 对象。因此,我们可以推测大概是这个方法导致了 InheritableThreadLocal 能够获取父线程中的值。

2、getMap () 方法

接下来我们对比一下 InheritableThreadLocal 和 ThreadLocal 中 getMap () 方法的区别。

  • InheritableThreadLocal
    image

  • ThreadLocal

image

我们可以发现一个获取了 inheritableThreadLocals,而另一个则获取了 threadLocals。其中 inheritableThreadLocals 会被继承到子线程中,因此可以子线程可以通过该对象访问父线程的 threadLocal 值(相当于线程之间的一个共享变量)。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。