【发布时间】:2011-11-13 04:20:14
【问题描述】:
我使用嵌入式 Jetty 编写了一个应用程序,它可以对其他服务进行网络调用。
我假设服务线程在等待网络调用完成时处于空闲状态。
有没有办法让工作线程在请求之间切换以执行可以在当前时间完成的工作,然后当网络调用返回时也处理它?完成所有工作后,将返回一个请求。
我知道这是一个常见的范例,我已经将它用于非阻塞 TCP 网络,但我不确定如何在 Java HTTP 服务器上实现这一点,同时还要等待外部结果。
感谢任何链接或解释。
谢谢
更新: 我正在使用 Membase 和 ElasticSearch(唯一的网络调用)。 Membase 返回“Future”对象,ElasticSearch 返回“ListenableActionFuture”。我希望能够在线程上继续处理以响应这些返回的对象。
【问题讨论】:
-
您使用的是哪个版本的 Jetty?我知道最新的支持 Servlet 3.0 API,它具有异步请求处理的功能。但我不知道所有细节。
标签: java multithreading http nonblocking