Java 非阻塞 HTTP 服务器

标签 java multithreading http nonblocking

我使用嵌入式 Jetty 编写了一个应用程序,可以对其他服务进行网络调用。

我假设服务线程在等待网络调用完成时处于空闲状态。

有没有办法让工作线程在请求​​之间切换以执行当前可以完成的工作,然后在网络调用返回时也处理该工作?完成所有工作后,将返回请求。

我知道这是一个常见的范例,我已经将它用于非阻塞 TCP 网络,但我不确定如何在等待外部结果的同时在 Java HTTP 服务器上实现这一点。

感谢任何链接或解释。

谢谢

更新: 我正在使用 Membase 和 ElasticSearch(唯一的网络调用)。 Membase 返回“Future”对象,ElasticSearch 返回“ListenableActionFuture”。我希望能够在线程上继续处理以响应返回的这些对象。

最佳答案

你可以看看Deft ,它是单线程、异步、事件驱动的 Web 服务器。

关于Java 非阻塞 HTTP 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8106300/

相关文章:

ruby-on-rails-3 - Rails Savon Soap HTTP 错误 (500)

java - 使用 Java Apis 在 hadoop 中运行 Streaming 作业

java - Java 发送电子邮件时出现异常

java - 传递结果 ResultInfo 失败

java - 线程不释放内存

java - HTTP BOSH 和 HTTP 流水线

java - android - 尝试使用键名清除共享首选项

c++ - 创建qt线程事件循环

c++ - C++ 中的线程安全单例使用静态成员实例(无惰性实例化)

c++ - 使用 CPR 从 C++ 调用 HTTP?