【问题标题】:What are "Jetty 6 Continuations" and how do they compare to the continuations found in programming languages?什么是“Jetty 6 Continuations”,它们与编程语言中的 continuation 相比如何?
【发布时间】:2010-11-15 07:36:58
【问题描述】:

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

我的理解是,使用延续,让“pi 的位数”​​生产者与“pi 的位数”​​消费者进行通信是微不足道的,无需显式线程。

我听说过关于 Jetty 延续的好消息。我很好奇其他人的想法。

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

【问题讨论】:

    标签: jetty continuations


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      据此page

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

      我还没有使用过 Jetty,但似乎服务器不需要为每个客户端保留一个线程,通常当服务器“推迟”(我猜是阻塞)向客户端发送响应时如果使用 AJAX 不断地轮询它,则每个客户端都需要一个线程,这将是一个可伸缩性问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-24
        • 2011-02-14
        • 2023-04-06
        • 1970-01-01
        • 2021-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多