设计问题 - servlet中异步请求的线程安全性

时间:2013-06-25 00:57:10

标签: java multithreading servlets concurrency jetty

Servlet 3.0规范的2.3.3.4部分读取 -

  

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

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

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

但是,在我的情况下,我需要使用ServletInputStream,因为我不希望在传递给处理线程之前缓冲内容。

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

1 个答案:

答案 0 :(得分:1)

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