我正在寻找一个答案来描述Web服务器与编程语言中的“延续”机制。
我的理解是,使用延续,让“pi的数字”生产者与“pi的数字”消费者进行通信,而无需显式线程,这是微不足道的。
我听说过关于Jetty延续的非常好的事情。我很好奇其他人的想法。
我可能已经找到了答案,但无论如何我都在问这个问题 - 记录。
答案 0 :(得分:2)
它们与编程语言中的延续相比如何?
除名称外,它们没有任何共同之处。它只是一种通过为Servlet
提供用于存储和恢复其状态的API来释放当前线程的机制,但它完全是手动管理而不是实际连续,其中状态是从当前上下文自动推断的。
对于有意义的情况的原型示例是分层(组合)Web服务,其中一个服务需要向其他服务发出许多请求,并且在做出这些请求时,释放当前线程。完成请求后(可以在其他一些线程上异步完成),调用servlet的resume
方法,然后根据请求的结果汇总响应。
答案 1 :(得分:1)
根据page:
延续将被替换为 标准Servlet-3.0可挂起 请求一旦规范 最终确定。早期版本的Jetty-7 现在可以实现 建议的标准暂停/恢复API
我还没有使用过Jetty,但似乎有了延续,服务器不需要为每个客户端保留一个线程,正常情况下服务器在向客户端发送响应时“等待”(我猜阻塞)使用AJAX不断轮询它需要为每个客户端提供一个可扩展性问题的线程。