【深入理解Java原理】ThreadLocal
ThreadLocal 使用
莫問行人早, 更有早行人-- 古訓《增廣賢文》
ThreadLocal 線程調用, 每個線程調用全局ThreadLocal 對象的set方法, 相當于往其內部的map 中增加一條記錄,key 分別是各自的線程,value 是各自的set方法傳進去的值, 在線程結束時可以調用Threadlocal.clear()方法,這樣會更快的釋放內存,不調用也可以,線程結束后也可以自動釋放相關的ThreadLocal 變量。
ThreadLocal 的應用場景:
訂單處理包含一系列操作, 減少庫存量,增加一條流水賬,修改總賬, 這幾個操作要在同一個事物中完成,
實現對ThreadLocal 變量的封裝, 然后啟動多個線程向該ThreadLocal 變量中存儲的一個值,
總結:
一個ThreadLocal 代表一個變量,故其中里只能放一個數據, 你有兩個變量都要線程范圍內共享,那么要定義兩個ThreadLocal 對象, 如果有一個變量要線程共享,要先定義一個對象,然后在ThreadLocal 中存儲這個對象。
要使用一個東西怎么辦
1. 首先要知道他的原理,為什么有這個東西產生
2. 他的優缺點
3. 他的使用例子,適用場景
先說ThreadLocal原理
字面意思是“本地線程”,其實這樣是不對的,上面也說了,這個ThreadLocal 是用來解決線程安全問題的,避免同一個變量a,被線程A使用,還被線程B使用,線程A使用a時候&#x
總結
以上是生活随笔為你收集整理的【深入理解Java原理】ThreadLocal的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第三十二期:如何摆脱「技术思维」的惯性?
- 下一篇: Oracle常用字符串操作