ThreadLocal 執行緒內取不到值

2021-10-19 22:31:34 字數 323 閱讀 6304

threadlocal 執行緒內取不到值

在***裡, 從 request 請求裡拿出了一些資料例如使用者id啥的, 儲存到了 threadlocal 裡, 在後面具體的業務處理中, 從 threadlocal 卻裡取不到值

大概率是因為當前業務執行緒和之前***不是同一執行緒, 可以使用一下方法檢視一下執行緒 id 是否一致

thread t = thread.

currentthread

()

找到原因侯就很容易解決了, 可以在進入業務前把資料從 threadlocal 裡取出來, 或者重新在業務執行緒再 set 一次

執行緒範圍內共享資料ThreadLocal

原始碼 private t setinitialvalue 1 原始版本 public class threadlocaltestbefore start new thread new runnable start a b類分別為使用執行緒區域性變數的資料 static class a static...

執行緒ThreadLocal類

threadlocal 在很多地方叫做本地變數,在有些地方叫做執行緒本地儲存。threadlocal 在每個執行緒中為每個變數都建立了乙個副本,每個執行緒可以訪問自己內部的副本變數,而不會對其它執行緒的副本變數造成影響。如果看不懂沒關係,下面會解釋各個函式的意思。public t get publi...

多執行緒 ThreadLocal

目錄 一 threadlocal 概述 1.1 threadlocal 是什麼 1.2 threadlocal 的作用 二 threadlocal 的使用和原始碼分析 2.1 threadlocal 如何使用 2.1.1 常見方法 2.1.2 使用示例 2.2 threadlocal 原始碼分析 2...