我有一個servlet動作方法。如果有一個請求來試圖做某事。如果還有第二個請求,我想阻止它,直到第一個請求完成爲止。我可以如何實現這一點。?如何在servlet動作中同步請求
2
A
回答
0
您可以使用標準的Java塊來實現此目的。就像這樣:
synchronized(this) {
// do some stuff
}
但是,我強烈建議不要在servlet中這樣做,因爲這可能會導致嚴重的性能影響。 Servlet應該是無狀態的,因此併發請求不應相互影響。
0
你有兩個選擇:
如果你的用戶羣是有限的,而不是越來越多,建議你的servlet實現
SingleThreadModel
接口。這確保了servlet一次只處理一個請求。如果您的用戶羣正在增長並且需要擴展,建議使用
synchronization block
。在這裏,您只會同步可能導致數據不明確的'代碼塊'。這個想法是減少要被同步的代碼量,以便它不會導致任何性能問題。
相關問題
- 1. 如何同步請求?
- 2. 如何在角js中製作同步http請求
- 3. HTTP請求如何在servlet中提供?
- 4. 用異步servlet中的新請求替換舊請求
- 5. 如何在swift中同步異步HTTP請求3,沒有AlamoFire
- 6. 同步GET請求
- 7. iPhone同步請求
- 8. django同步請求
- 9. AFNetworking同步請求
- 10. Volley同步請求
- 11. 同步JSONP請求
- 12. CasperJS同步請求
- 13. 同步Ajax請求
- 14. 同步UIWebview請求
- 15. 請求AVAssetForVideo同步
- 16. 如何在同一個servlet請求中使用getOutputStream()和getWriter()?
- 17. 在Eclipse中自動同步Java servlet?
- 18. Grails - Servlet 3.0異步請求處理
- 19. 如何使一個同步GET請求
- 20. 如何進行同步RIA請求
- 21. 如何創建同步NSURLConnection請求
- 22. 如何取消同步WinHttp請求?
- 23. 如何同步mysql數據庫請求?
- 24. 如何設置MKNetworkingKit請求同步?
- 25. 如何使Jersey Rest POST請求同步
- 26. 如何將請求從servlet轉發到struts2的動作?
- 27. 如何將請求從servlet轉發到struts1.x的動作
- 28. 如何從servlet的動作(請求參數)的index.html
- 29. NSURLConnection在backgorund中發出同步請求
- 30. 在Ajax請求中使用同步