由于所有这些东西都来自Servlet,当第一个用户访问Struts应用程序时,意味着他的请求正在使用一个线程?在Struts 1.1中,用户请求只不过是一个线程而已?
如果同时有1000个用户,则意味着1000个线程?
由于所有这些东西都来自Servlet,当第一个用户访问Struts应用程序时,意味着他的请求正在使用一个线程?在Struts 1.1中,用户请求只不过是一个线程而已?
如果同时有1000个用户,则意味着1000个线程?
是的,servlet请求由线程处理。
但是不,1000个并发请求并不意味着1000个并发线程,因为servlet容器使用带有绑定大小的线程池。因此,请求将排队,直到池中的线程可用于服务它们。
请注意,这与Struts无关。还要注意Struts 1的最后一个受支持版本是1.3.x,甚至这个版本已经放弃并且不被支持多年。你真的不应该再使用Struts 1.x了,甚至更少的Struts 1.1。
这是正确的servlet每个请求使用一个线程,但它并不意味着“Struts应用程序”不能分叉一个新线程或从另一个线程池(不由容器管理)获取一个线程。
用户数量与线程数量无关,因为用户可能会打开会话并等待当前没有请求/线程正在运行。当请求结束时,正在执行请求的线程已返回到池中。