servlet的线程安全性问题
生活随笔
收集整理的這篇文章主要介紹了
servlet的线程安全性问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
servlet本身運(yùn)行不存在所謂線程是否安全性的問(wèn)題,取決于我們?nèi)绾问褂胹ervlet.
以tomcat web container舉例 ,servlet加載后以單實(shí)例 方式存在于容器之中,由于容器肯定是以多線程方式運(yùn)行,這個(gè)時(shí)候如果servlet使用到靜態(tài)變量或者實(shí)例 變量,那么肯定是線程不安全的。為了在高并發(fā)下保證線程安全性,首要的前提就是無(wú)狀態(tài),在實(shí)際開(kāi)發(fā)過(guò)程中,可以考慮使用局部變量或ThreadLocal機(jī)制。Spring框架解決線程安全性問(wèn)題的核心機(jī)制就是ThreadLocal. ThreadLocal如何使用這個(gè)網(wǎng)上資料很多,使用也比較簡(jiǎn)單,就不展開(kāi)了。下面附上Oracle 官方的API說(shuō)明。
ThreadLocal的API
http://docs.oracle.com/javase/8/docs/api/java/lang/ThreadLocal.html
總結(jié)
以上是生活随笔為你收集整理的servlet的线程安全性问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: tomcat servlet容器请求时序
- 下一篇: 一窥谷歌神经机器翻译模型真面貌 其底层框