執行緒本地變數獲取

2021-08-21 19:28:35 字數 713 閱讀 2494

以map集合為例進行說明,將執行緒的名稱作為鍵,執行緒的本地變數作為值,儲存在map集合中。然後在需要的地方,獲取當前執行緒的名稱,根據當前執行緒名稱獲取值。如下:

public class test ).start();}}

public static class demo1

}public static class demo2 }}

列印效果如下,能夠精準的獲取不出錯:

threadlocal只能存放乙個資料,如果有多種型別的資料需要建立多個threadlocal。threadlocal可以實現建立不同執行緒的物件,而不是去使用synchronized 。關於threadlocal的原始碼解讀請參考另一篇文章:下面請看案例。

public class test2 ).start();}}

public static class demo1

}public static class demo2 }}

這樣可以更加快捷方便的獲取到資料,效能比第一種方法更高,列印結果如下:

總結完畢!

TheadLocal執行緒本地變數

複習再複習,結果面試被提問,回答得亂七八糟。這裡對這個概念做總結!threadlocal高併發使用 獲取當前執行緒物件 t,獲取執行緒物件t內部的threadlocalmap變數 執行緒t的threadlocalmap變數不為空則對其賦值 為空則建立乙個新的map到該執行緒變數 每個執行緒內部都有t...

本地執行緒變數(四) FastThreadLocal

四 總結 一 背景 因為需要,研究了可以通過inheritablethreadlocal進行父子執行緒中如何傳遞本地執行緒變數,通過阿里開源專案transmitablethreadlocal進行進行執行緒池傳遞本地執行緒變數 詳解可檢視以往部落格 在查詢資料的過程中無意發現了dobbo的intern...

獲取本地IP

bool socketuti getlocalipaddr string stripaddr if gethostname myname,80 socket error return false if thishost gethostbyname myname return false memset...