什么是“ Jetty 6 Continuations”它们如何与编程语言中的延续相比较?

StackOverflow https://stackoverflow.com/questions/1204355

  •  05-07-2019
  •  | 
  •  

我正在寻找一个描述“延续”的答案。 Web服务器与编程语言的机制。

我的理解是使用延续,使用“pi的数字”是微不足道的。生产者与“pi的数字”进行通信。消费者,没有明确的线程。

我听说过关于Jetty延续的非常好的事情。我很好奇其他人的想法。

我可能已经找到了答案,但无论如何我都在问这个问题 - 记录。

有帮助吗?

解决方案

  

它们与编程语言中的延续相比如何?

除名称外,它们没有任何共同之处。它只是一种通过赋予 Servlet API来存储和恢复其状态来释放当前线程的机制,但它完全是手动管理而不是真正的延续,其中状态是从当前上下文自动推断出来的。

对于有意义的情况的原型示例是分层(组合)Web服务,其中一个服务需要向其他服务发出许多请求,并且在做出这些请求时,释放当前线程。完成请求后(可以在其他一些线程上异步完成),调用servlet的 resume 方法,然后根据请求的结果汇总响应。

其他提示

根据页面

  

延续将被替换为   标准Servlet-3.0可挂起   请求一旦规范   最终确定。早期版本的Jetty-7   现在可以实现   建议的标准暂停/恢复API

我还没有使用过Jetty,但似乎有了延续,服务器不需要为每个客户端保留一个线程,通常当服务器“等待”时(我猜阻塞)在向客户端发送响应时,不断使用AJAX轮询它,每个客户端都需要一个线程,这将是一个可扩展性问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top