我使用嵌入式 Jetty 编写了一个应用程序,可以对其他服务进行网络调用。
我假设服务线程在等待网络调用完成时处于空闲状态。
有没有办法让工作线程在请求之间切换以执行当前可以完成的工作,然后在网络调用返回时也处理该工作?完成所有工作后,将返回请求。
我知道这是一个常见的范例,我已经将它用于非阻塞 TCP 网络,但我不确定如何在等待外部结果的同时在 Java HTTP 服务器上实现这一点。
感谢任何链接或解释。
谢谢
更新: 我正在使用 Membase 和 ElasticSearch(唯一的网络调用)。 Membase 返回“Future”对象,ElasticSearch 返回“ListenableActionFuture”。我希望能够在线程上继续处理以响应返回的这些对象。
最佳答案
你可以看看Deft ,它是单线程、异步、事件驱动的 Web 服务器。
关于Java 非阻塞 HTTP 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8106300/