servlet的線程安全

 

線程安全的類是那些?(多選)

a.webwork 1.x框架中的action 處理類

b.struts1.x 框架中的action處理類

c.普通的Servlet

d.普通的Filter

 

Servlet是以多線程的方式工作的,Servlet可以同時處理多個請求。作爲開發人員,需要注意Servlet成員變量的線程 安全,在doGet()、doPost()中的局部域變量是線程安全的,而Servlet的成員變量則有線程安全的隱患。所以除非你有意需要應用這種特 性,在一般情況下,不宜將一些可改寫的變量定義成Servlet的成員變量,否則一定要採取線程同步的措施確保線程安全。那麼怎樣才能是Servlet安全呢,凡是多個線程可以共享的就不要使用(實例變量+類變量),就這麼簡單.也可以使用synchronized同步方法,但是這樣效率不高,還可以使用單線程模型,這樣的話效率就更低了

WebWork Actions 爲每個請求初始化一個實例, 這樣就解決了線程安全的問題

struts中的action本質是個輕量級的servlet,Filter也是個特殊的servlet,因此答案爲a

 

發佈了41 篇原創文章 · 獲贊 35 · 訪問量 56萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章