日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多线程并发神器--ThreadLocal

發布時間:2023/12/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多线程并发神器--ThreadLocal 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是ThreadLocal

可以理解成線程本地變量,傳統的線程對一個變量操作時操作的是同一個對象,也存在線程安全的問題。

ThreadLocal是一個變量的本地副本,線程對變量的操作不會影響其他線程。

首先看看ThreadLocal的類結構

其中可重寫的方法有以下幾個

initialValue():ThreadLocal初始化的值,新建ThreadLocal的一般要重寫給個初始的值。

get():獲取當前線程變量的副本值。

set(T value):設置、更新當前線程上的變量副本值。

remove():移除當前線程上的變量副本。

ThreadLocal使用

新建ThreadLocal,類型為User,并初始化為tom,12歲,啟動3個線程,每個線程循環3次,休眠1少,主線程再輸出。

輸出結果如下

從結果可見每個線程使用的是各自線程的變量副本,并沒有影響其他線程和主線程,實現了線程隔離的效果。

使用場景

一般用來解決數據庫連接、用戶session管理等。

內存泄露問題

如果線程的執行周期過長可能導致內存泄露的風險,雖然線程執行完后會ThreadLocal也會隨著銷毀,但最好使用完后加上remove這樣會加快內存的釋放,一般來說線程周期不長是不太會引起內存泄露的。還有如果定義了ThreadLocal又不用也有問題,因為每次ThreadLocal的get/set/remove操作都會清理無效的key加快內存釋放。ThreadLocal應用比較廣泛,如果不是濫用,利是大于憋的。

總結

以上是生活随笔為你收集整理的多线程并发神器--ThreadLocal的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。