异步服务器如何通过释放初始I / O线程来提高吞吐量?

时间:2016-07-07 14:44:33

标签: java asynchronous jersey

11.1. Asynchronous Server API的球衣文档中,我无法理解释放线程如何提高吞吐量

  

然而,通过发布,它将增加服务器的吞吐量   初始请求处理线程返回I / O容器时   请求可能仍在队列中等待处理或   处理可能仍在另一个专用线程上运行。该   发布的I / O容器线程可用于接受和处理新的   传入请求连接。

也许在回答问题之前,需要回答其他基本问题

什么是I / O容器,是Web容器吗? "虽然请求可能仍在队列中等待"什么队列?如果收到请求并不意味着它已被处理?

1 个答案:

答案 0 :(得分:1)

Jersey不一定需要servlet容器,它也适用于grizzly。我相信这就是为什么他们选择在文档中引用IO容器而不是web或servlet容器。

异步请求是并行处理的,但是服务器没有无限数量的线程或其他资源来执行此操作,因此在资源可用之前将一些请求留在队列中。

吞吐量增加,因为泽西服务器不需要等到长时间运行操作完成,并且可以立即将控制返回到IO容器,允许容器的请求处理线程用于服务其他请求。有关详细信息,请参阅有关线程和请求以及异步处理的好article