2

Tomcat 使用线程池并重用线程 我想知道它是跨会话还是跨请求 重用线程?

4

2 回答 2

4

跨请求和会话。一切。如果一个线程不能被不同的会话使用,那么当 300 个用户获得他们的会话 ID(并且相应的线程被保留)并且用户号 301 想要访问时,您的服务器将在几秒钟/分钟内崩溃。

把它想象成:

server waiting for request:
on request:
  obtain free thread from pool
  put that thread to process request (by example: doGet(Req, Resp))
  when finished return thread to pool

对服务器的每个请求(来自任何人)都由池中的第一个空闲线程处理。

于 2012-09-27T11:03:51.770 回答
1

Apache Tomcat 配置参考如下所述。

Executor 代表一个线程池,可以在 Tomcat 中的组件之间共享。从历史上看,每个创建的连接器都有一个线程池,但这允许您在(主要)连接器之间共享一个线程池,但当其他组件被配置为支持执行程序时,您也可以共享一个线程池

于 2012-09-27T10:57:07.447 回答