04使用ThreadLocal封裝DBUtil

2021-09-27 07:43:14 字數 592 閱讀 8075

[1]為什麼使用threadloacl(本地執行緒)

我們發現在做批量刪除的時候,這個操作對於使用者來說是傳送了乙個請求,但是在這有乙個請求中包含了多條的刪除操作,每一條刪除操作都需要重新的獲得conn物件,這樣的操作就會造成資料庫資源的浪費。我們希望如果使用者傳送的是乙個請求可以實現conn資源物件的共享即可

目的:同乙個請求中實現資料資源的共享

請求沒有改變,對應的執行緒就不會改變

最終的目的是實現在同乙個執行緒中實現資料的共享

[2]解決的方案

threadload

底層是map集合實現的

map.put("執行緒的id",conn)   

map.get("執行緒的id")

**實現

public class dbutil  catch (ioexception e) 

}public static sqlsession getsession()

return tl.get();

}public static void closeall()

tl.set(null);

}}

ThreadLocal使用介紹

首先有幾點需要大家清楚的 1 threadlocal 只是對需要儲存的物件的管理,而儲存實際是由當前thread 負責。個人理解為threadlocal 是乙個操作thread.threadlocals 的工具。2 使用threadlocal 可以使物件達到執行緒隔離的目的。同乙個threadloc...

ThreadLocal使用案例

本文藉由併發環境下使用執行緒不安全的 dateformat優化案例,幫助大家理解threadlocal.public class dateutil catch parseexception e 首先分析下 該處的函式parseymdhms 使用了synchronized修飾,意味著該操作是執行緒不安...

Java事務 三 使用ThreadLocal

一.為什麼使用threadlocal 如果涉及到呼叫多個service,那我是不是還得從controller層傳遞connection?從而不會影響其他執行緒中的例項變數,所以threadlocal可以實現執行緒範圍內資料共享。二.如何使用threadlocal 1.寫乙個transactionma...