ThreadLocal的非数据安全用法
生活随笔
收集整理的這篇文章主要介紹了
ThreadLocal的非数据安全用法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
啟發(fā)于同學處理的bug,他遇到的問題是:
? ? ? “有三臺Tomcat服務器,其中有一臺Tomcat服務器出現(xiàn)這種情況:一個用戶A登錄了系統(tǒng),如果有新的用戶B接著登錄系統(tǒng),會把用戶A的登錄信息給替換成新用戶B的信息。這造成無緣無故看到是別人的昵稱和頭像。”
?
原因:這個老舊系統(tǒng)里面使用了ThreadLocal存儲用戶登錄的信息,ThreadLocal是線程安全的,可ThreadLocal不是會話安全的。在Tomcat里面會創(chuàng)建擁有許多線程的線程池,而每條線程被使用后又被Tomcat的線程池收回再利用(只有超過最小空閑才會被回收),線程沒有被銷毀。
總結
以上是生活随笔為你收集整理的ThreadLocal的非数据安全用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 头涔涔泪潸潸的意思 头涔涔泪潸潸什么意思
- 下一篇: Java 程序员必须掌握的 5 个注解