Tomcat 使用线程池并重用线程 我想知道它是跨会话还是跨请求 重用线程?
问问题
1937 次
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 回答