国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Java單線程ThreadLocal串值問題解決方案

瀏覽:3日期:2022-09-02 16:18:00

ThreadLocal

ThreadLocal 適用于變量在線程間隔離,而在方法或類間共享的場景。

代碼

@RestControllerpublic class ThreadLocalController { private static final ThreadLocal<String> currentUid = ThreadLocal.withInitial(() -> null); @GetMapping('bad') public Map doBad(@RequestParam('uid') String uid) { String before = currentUid.get(); currentUid.set(uid); String after = currentUid.get(); Map result = new HashMap(); result.put('before', before); result.put('after', after); return result; }}

在application中做一下tomcat的配置

server.tomcat.max-threads=1

運行結果第一次

Java單線程ThreadLocal串值問題解決方案

第二次

Java單線程ThreadLocal串值問題解決方案

按理說before總是null才對,為什么第二次運行卻讀取到了第一次的值呢?

只是因為我們的tocat會開啟一個線程來調用我們的程序,而tomcat本身是有線程池的,會出現線程復用的情況。所以導致了問題。

修復

@RestControllerpublic class ThreadLocalController { private static final ThreadLocal<String> currentUid = ThreadLocal.withInitial(() -> null); @GetMapping('good') public Map doGood(@RequestParam('uid') String uid) { try { String before = currentUid.get(); currentUid.set(uid); String after = currentUid.get(); Map result = new HashMap(); result.put('before', before); result.put('after', after); return result; } finally { currentUid.remove(); } }}

Key

tomcat線程池。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 久久夜色精品国产 | 特级欧美视频aaaaaa | 久草视频免费在线 | 国产亚洲高清在线精品99 | 亚洲欧美网| 久草国产在线播放 | 久久精品视频一区 | 亚欧色| 国产网站免费视频 | 成人免费在线观看视频 | 九九在线精品视频播放 | 亚洲国产第一区二区香蕉日日 | 91免费看视频 | 男人天堂视频在线 | 午夜精品同性女女 | 日本三级日产三级国产三级 | 成人国产精品毛片 | 亚洲最新网站 | 亚洲爽妇网 | 美女亚洲视频 | 九九精品免费 | 亚洲欧美专区精品久久 | 全国男人的天堂天堂网 | 国产在线观看第一页 | 色天天躁夜夜躁天干天干 | 一级大黄美女免费播放 | 国内免费视频成人精品 | 一级片aaaa| 欧美一区二区在线观看 | 日韩一级欧美一级 | 欧美色视频在线观看 | bt天堂国产亚洲欧美在线 | 美美女高清毛片视频黄的一免费 | 亚洲国产精品自在现线让你爽 | 女人又黄的视频网站 | 怡红院日本一道日本久久 | 亚洲精品成人一区二区 | 国产精选经典三级小泽玛利亚 | 日韩精品特黄毛片免费看 | 51国产偷自视频区视频手机播器 | 欧美一区二区三区视频在线观看 |