久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:5日期: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

運行結(jié)果第一次

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

第二次

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

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

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

修復

@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線程池。

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

標簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产一区二区三区视频 | av在线一区二区三区 | 性色网站| 成人男女激情免费视频 | 久久精品久久久久电影 | 久久久精品区 | 亚洲 欧美 自拍偷拍 | 久草久草久 | 国产在线精品一区二区三区 | 久久久久国产精品免费免费搜索 | 成人免费一区二区三区 | 国产精品一二三四区 | 欧美一级艳片视频免费观看 | 亚洲视频在线观看网址 | 99精品国产高清在线观看 | 欧美黄色a视频 | 日本一区二区不卡视频 | 国产精品久久久久久久午夜片 | 老司机在线精品视频 | 国产一区二区三区四区三区 | 91久久夜色精品国产九色 | 欧美亚洲免费 | 国产免费自拍 | 妹子干综合 | 欧美午夜一区二区三区免费大片 | 四虎永久免费 | 午夜艹 | 黄色一级毛片 | 91丨九色丨国产 | 精品日韩一区二区 | 久久九 | 午夜剧| 免费一区 | 九九天堂网 | av网站网址 | 国产一区二区精品 | 久久久久久久一区 | 成人欧美一区二区三区在线播放 | 精品久久久久久久久福利 | 老司机深夜福利在线观看 | 看免费的毛片 |