Wetts's blog

Stay Hungry, Stay Foolish.

0%

第4章-REST服务与异步

服务器端使用异步机制的主要目的是将“处理连接”与“处理请求”解耦。

对于服务器而言,如果处理连接的线程被一个需要较长时间才能处理完毕的任务阻塞,那么服务器处理连接的能力就会下降,而此时服务器的资源很有可能是空闲的。此时,我们考虑将处理连接和处理请求任务解耦,处理连接的线程接收请求后,将其分派给处理请求任务的线程。这样一来,即使任务需要较长时间才能完成,处理连接的线程也无需阻塞等待了,服务器因此可以重用连接线程,从而提供更高的吞吐率。处理请求的线程相对于处理连接的线程是异步执行的,当任务结束后,服务器会从上下文中找到当前连接,并将连接结束返回,作为该连接请求的响应。