ThreadLocal用于線程局部變量的一個工具類。
原理是為每個線程創建獨立的變量副本,從而實現線程數據的隔離。具體來說,ThreadLocal 通過一個 ThreadLocalMap來實現,這個 ThreadLocalMap 是一個自定義的哈希表,用于存儲線程和對應的變量值。使用 ThreadLocal 時,每個線程都有自己的 ThreadLocal 實例,用于存儲線程私有的數據。ThreadLocalMap 使用弱引用保存線程的變量,這樣可以避免內存泄漏的問題。每個線程在調用 ThreadLocal 的 set 方法時,會將值放入當前線程的 ThreadLocalMap 中;而在調用 get 方法時,則從當前線程的 ThreadLocalMap 中獲取值