3

我在这里阅读了新的 springframework 3.2 功能,Servlet 3 Async 支持:

http://blog.springsource.org/2012/05/07/spring-mvc-3-2-preview-introducing-servlet-3-async-support

我有一个问题。

博客文章指出spring现在支持:

  1. 控制器返回一个 Callable
  2. 可调用对象在后台线程 ( TaskExecutor)中调用
  3. 响应保持打开状态 ( request.startAsync())。

声明的动机是避免占用所有 Web 容器线程。不过,我的理解是这样的:

  1. Web 容器线程池是可调的。
  2. 该线程池有一个硬性限制,因为最好降低服务质量,而不是通过耗尽所有资源来降低进程(例如,无界线程池和足够多的请求会发生)。
  3. servlet-3/comet 的重点是限制打开线程的数量,同时不限制与 Web 服务器的打开连接数量(因为线程很昂贵,而套接字很便宜)

因此,鉴于此,Spring 提出的功能对我来说意义不大。他们不只是在容器的有界池之上破解一个无界线程池吗?这不会错过限制线程数的要点吗?

4

0 回答 0