JavaServlets线程模型

JavaServlets线程模型,java,servlets,multithreading,Java,Servlets,Multithreading,我想知道是否有人可以向我解释Java servlet的线程模型? 据我所知,servlet容器中只能存在一个servlet实例,如果多线程碰巧在等待该servlet,则会以某种方式序列化请求。 我不知道序列化过程是如何发生的 有人能解释一下吗?如果请求是由servlet串行处理的,那么web应用程序将非常慢。实际上,servlet需要是线程安全的,因为servlet的单个实例可以负责同时处理多个请求 通常,web应用程序容器将维护一个线程池来处理请求,传入的请求将按需分配给线程。根据Servle

我想知道是否有人可以向我解释Java servlet的线程模型? 据我所知,servlet容器中只能存在一个servlet实例,如果多线程碰巧在等待该servlet,则会以某种方式序列化请求。 我不知道序列化过程是如何发生的


有人能解释一下吗?

如果请求是由servlet串行处理的,那么web应用程序将非常慢。实际上,servlet需要是线程安全的,因为servlet的单个实例可以负责同时处理多个请求


通常,web应用程序容器将维护一个线程池来处理请求,传入的请求将按需分配给线程。

根据Servlet的不同,过去您有两种模型。如果实现了Servlet,那么请求将在哪里排队。否则,这是目前唯一的模型,Servlet必须能够同时为多个请求提供服务。因此,在该模型中没有排队,除非容器具有一些速率限制功能。

是的,有一个接口单线程模型。它是一个标记接口。
它使servlet的这个对象同步,即一次只有一个线程为该对象服务。但它会产生响应延迟等问题。为了解决这个问题,他们创建了对象池,但池的大小也有限。因此最好使用同步块

提前感谢您的回复!但我还有一件事要澄清。线程安全意味着servlet中没有维护内部状态,因此池中的任何servlet实例都具有与创建时相同的状态。我说得对吗?谢谢没有内部状态的类是线程安全的,但它不是线程安全的唯一方法。线程安全本身是一个长期的讨论,但例如,具有内部状态的类如果序列化对其内部状态的访问,则可以是线程安全的。servlet也必须是线程安全的,因为它们与其他servlet(例如存储在ServletContext和HttpSession中的对象)共享状态信息,您的意思是一个线程请求只访问一个servlet实例吗?