ThreadLocal在java web工程中的使用。
以下內容是我自己的認識,可能有錯。
ThreadLocal是用來存取執行緒共享變數的。而一個http請求,在java web裡面,都是在一個執行緒裡處理的(除非你自己手動建立新執行緒。ps:在AO、Manager、DAO裡面,還是原來的執行緒嗎?我該自己去測一下)。
可以用在一個實用類裡面放一個靜態ThreadLocal<T>,例如:
class Context {
private static ThreadLocal<Integer> holder = new ThreadLocal<Integer>();
public static Integer get() {
return holder.get();
}
public static void set(Integer value) {
holder.set(value);
}
}
在處理一個http請求時:你在servlet、filter裡呼叫set,把需要儲存的物件放進去。之後在呼叫get取出。另一個http請求的執行緒不會取到這個執行緒的物件。
ps:
每一個執行緒有一個ThreadLocalMap物件,它的key是一個ThreadLocal物件,它的值就是使用者存進來的值。
當你呼叫Context.set(value1),就是以holder為key,以value1為值,存到當前執行緒的ThreadLocalMap物件裡。
當你呼叫Context.get(),就是:以holder為key,從當前執行緒的ThreadLocalMap物件中取出value1。
這意味著,多個執行緒的ThreadLocalMap物件裡面都有holer這個key,但value卻是不同的。
相關文章
- Web專案中的ThreadLocalWebthread
- Java Web之MySQL在專案中的使用JavaWebMySql
- Java中的引用與ThreadLocalJavathread
- Java中的ThreadLocal詳解Javathread
- 關於Java Web工程中web.xml檔案JavaWebXML
- 在web工程中設定首頁的頁面Web
- Java中ThreadLocal的用法和原理Javathread
- Java中的ThreadLocal深入理解Javathread
- Java ThreadLocal 使用詳解Javathread
- REST 在 Java 中的使用RESTJava
- java中ThreadLocal的應用場景分析Javathread
- .在java和java web程式中的含義以及如何獲取web資源JavaWeb
- 在 dubbo 中使用 Threadlocal 的相關問題thread
- ThreadLocal的使用thread
- IDEA建立Java WEB工程IdeaJavaWeb
- 面試中的 ThreadLocal 原理和使用場景面試thread
- 在Java中this關鍵字的使用Java
- 在 Java 中如何使用 transientJava
- MVC模式在Java Web應用程式中的實現MVC模式JavaWeb
- java web 中的MVCJavaWebMVC
- Java多執行緒10:ThreadLocal的作用及使用Java執行緒thread
- 正規表示式在Java中的使用Java
- 十四 在IDE中新建一個動態Web Java工程時沒有Java EE(Legacy)\web Application?IDEWebJavaAPP
- Java ThreadLocal解析Javathread
- Java - ThreadLocal類Javathread
- Redis的安裝及在Java中的使用RedisJava
- Java 中 ThreadLocal 記憶體洩露的例項分析Javathread記憶體洩露
- Native API 在 HarmonyOS 應用工程中的使用指導API
- java反射(3)在工廠模式中的使用Java反射模式
- 在Java web伺服器內使用url rewrite(轉)JavaWeb伺服器
- Java ThreadLocal深度解析Javathread
- web工程中URL地址的推薦寫法Web
- Java~“全域性資料盒“ --類ThreadLocal和InheritableThreadLocal的使用Javathread
- java中ThreadLocal作用與執行緒安全問題Javathread執行緒
- Hanlp在java中文分詞中的使用介紹HanLPJava中文分詞
- 使用Cloud Toolkit在IDEA中極速建立dubbo工程CloudIdea
- Spring Quartz Java工程版和Web工程版示例SpringquartzJavaWeb
- ThreadLocal的使用場景分析thread