ThreadLocal的使用場景

2021-10-07 14:52:00 字數 797 閱讀 8872

在使用jdbc的時候,可以保證dao層與service層使用同乙個資料庫連線,從而保證資料庫(service層)事務的可行性。

1.業務類和dao使用的執行緒是同乙個。

a)可以分別列印兩個類中的當前執行緒。看他們的hashcode是否是同乙個。

b)如何獲取當前執行緒。thread.currentthread();

2.如果執行緒有空間可以放conn,那麼我在業務類中把conn放入當前執行緒裡面,到dao中從當前執行緒裡面獲取,就可以保證兩個conn是同乙個。

執行緒有這樣空間嗎?

答案是肯定的。如何操作這個空間。

3.threadlocal可以操作當前執行緒的空間,哪個執行緒在執行threadlocal,threadlocal就操作了哪個執行緒。

a)如何建立出threadlocal物件。 threadlocal tl=new threadlocal();

b)threadlocal如何往當前執行緒裡面放資料。tl.set(object);

c)threadlocal如何從當前執行緒裡面取資料。tl.get();

d)threadlocal如何從當前執行緒裡面移除資料。tl.remove();

threadlocal(執行緒空間), 作為乙個空間臨時儲存唯一變數,類似於單例

在業務上又和單例的意義不同,具體業務,區別對待。

25 ThreadLocal的使用場景

threadlocal提供了get與set等訪問介面或方法,這個方法為每個使用該變數的執行緒都存有乙份獨立的副本,因此get總是返回由當前執行執行緒在呼叫set時設定的最新值。threadlocal物件經常用於防止對可變的單例項變數 singleton 或全域性變數進行共享。從概念上看,你可以將th...

ThreadLocal的原理和使用場景

每乙個thread物件均含有乙個threadlocalmap型別的成員變數threadlocals,它儲存本執行緒中所有threadlocal物件及其對應的值 threadlocalmap是由乙個個entry物件構成,entry繼承自weakreference,乙個entry是由threadloca...

ThreadLocal使用場景及其優勢

曾經很疑惑threadlocal是幹什麼用?什麼場景下要用?查了幾篇文章,都說它的優勢是執行緒安全,想必他的作用就是為了執行緒安全吧。仔細理解後發現,原來我們常用的區域性變數和靜態變數,在某種情況下無法滿足要求,比如,我要求快取乙個變數,這個時候你肯定會說搞乙個靜態map存一下就ok了,但是有幾個問...