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卻是不同的。
相關文章
- Java中的引用與ThreadLocalJavathread
- Java中的ThreadLocal詳解Javathread
- Java中ThreadLocal的用法和原理Javathread
- IDEA建立Java WEB工程IdeaJavaWeb
- java中ThreadLocal的應用場景分析Javathread
- ThreadLocal的使用thread
- 在 dubbo 中使用 Threadlocal 的相關問題thread
- 十四 在IDE中新建一個動態Web Java工程時沒有Java EE(Legacy)\web Application?IDEWebJavaAPP
- Java ThreadLocal解析Javathread
- Java - ThreadLocal類Javathread
- 在Java中this關鍵字的使用Java
- MVC模式在Java Web應用程式中的實現MVC模式JavaWeb
- 面試中的 ThreadLocal 原理和使用場景面試thread
- Java~“全域性資料盒“ --類ThreadLocal和InheritableThreadLocal的使用Javathread
- 在 Java 中如何使用 transientJava
- Native API 在 HarmonyOS 應用工程中的使用指導API
- 正規表示式在Java中的使用Java
- Redis的安裝及在Java中的使用RedisJava
- ThreadLocal的使用場景分析thread
- Jenkins在Java web專案CI/CD中的簡單應用JenkinsJavaWeb
- Java併發——ThreadLocal分析Javathread
- Java基礎(1)——ThreadLocalJavathread
- 使用Cloud Toolkit在IDEA中極速建立dubbo工程CloudIdea
- Java 併發程式設計:ThreadLocal 的使用及其原始碼實現Java程式設計thread原始碼
- web工程中URL地址的推薦寫法Web
- 《Java Web開發實戰》Java工程師推薦的進階之路JavaWeb工程師
- 在 Wed 中應用 MyBatis(同時使用MVC架構模式,以及ThreadLocal 事務控制)MyBatisMVC架構模式thread
- ThreadLocal的正確使用與原理thread
- Hanlp在java中文分詞中的使用介紹HanLPJava中文分詞
- Java / JavaScript在TensorFlow中的入門使用指南JavaScript
- Java ThreadLocal (Java程式碼實戰-006)Javathread
- java 併發,為執行緒建立本地變數 ThreadLocal的使用Java執行緒變數thread
- [Java併發]ThreadLocal補充Javathread
- java_web:EL表示式的使用JavaWeb
- Java併發:ThreadLocal的簡單介紹Javathread
- 在IDEA中maven工程中父工程不顯示的解決辦法IdeaMaven
- Java併發程式設計:ThreadLocal的使用以及實現原理解析Java程式設計thread
- MFC在一個工程中啟動其他工程的exe檔案
- Java併發程式設計—ThreadLocalJava程式設計thread