dea*_*mon 29 java asynchronous servlets java-ee
由于支持Servlet 3.0异步处理.使用始终异步处理会更好吗?或者在什么情况下同步处理更好?
dan*_*ben 20
阅读文章,Servlet 3.0规范中的异步处理支持有一个非常具体的用例 - 它旨在处理一个AJAX应用程序的情况,该应用程序发出的请求可以在后台触发可能长时间运行的进程.
我们需要这样的事情的原因是响应每个请求线程模型中的一个问题,每次客户端从服务器请求一个页面时都会分配一个线程,而不是为客户端的整个会话分配一个线程.这在AJAX之前运行良好,当客户偶尔提出请求时,但当AJAX应用程序显着增加客户端的请求数量时,这些好处就会丢失.
具体来说,如果一个AJAX请求触发了一些可能缓慢或阻塞的东西,比如数据库操作,我们就会回到我们开始的地方 - 来自服务器线程池的线程可能是空闲的.
异步处理支持尝试通过将请求放入集中式队列来缓解这种情况,这样线程就不会总是卡在等待可能尚未开始处理的请求的结果.简而言之,我们一直试图从我们的线程中获得最大的好处 - 也就是说,减少它们空闲时的时间(但可以提供其他连接).
像任何新的开发项目一样,这不是一个适合所有人的工具.在适当的应用程序中查找特定情况.
| 归档时间: |
|
| 查看次数: |
12150 次 |
| 最近记录: |