【问题标题】:Design issue - thread safety of Async requests in servlets设计问题 - servlet 中异步请求的线程安全
【发布时间】:2013-06-25 00:57:09
【问题描述】:

Servlet 3.0 Spec 的2.3.3.4 部分读取-

除了 startAsync 和 complete 方法, 请求和响应对象不保证是线程安全的。 这意味着它们只能在以下范围内使用 请求处理线程或应用程序必须确保 对请求和响应对象的访问是线程安全的。

我正在使用 Jetty,我的问题是 -

我的要求是在处理请求的异步线程中读取请求的 ServletInputStream。现在,如果我要阅读 http 标头等,那将很容易。我可以在开始异步并传递给线程之前阅读它们。

但是,就我而言,我需要使用 ServletInputStream,因为我不想在传递到处理线程之前缓冲内容。

有什么办法可以解决这个问题吗?或者,如果我只是将 ServletInputStream 的引用传递给处理线程,我会没事吗?

【问题讨论】:

    标签: java multithreading servlets concurrency jetty


    【解决方案1】:

    只要确保在任何时候只有一个线程从 ServletInputStream 中读取数据就可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 2016-08-24
      相关资源
      最近更新 更多