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 值(相當於線程之間的一個共享變量)。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。