我想知道是否有人能解释我Java Servlets的线程模型? 据我所知,servlet容器中只存在一个servlet实例,如果多个线程碰巧正在等待该servlet,那么请求会以某种方式被序列化。 我不知道序列化过程是如何发生的......
有人可以解释一下吗?
答案 0 :(得分:11)
如果请求是由servlet串行处理的,那么Web应用程序将非常慢。实际上,servlet需要是线程安全的,因为servlet的单个实例可以负责同时处理多个请求。
通常,Web应用程序容器将维护一个用于处理请求的线程池,并根据需要将传入请求分配给线程。
答案 1 :(得分:1)
历史上,您有两种型号,具体取决于您的Servlet。如果Servlet实现SingleThreadModel,则排队的请求。否则,这是现在唯一的模型,Servlet必须能够同时提供多个请求。所以在该模型中没有排队,除非容器具有一些限速功能。
答案 2 :(得分:1)
是的,有一个界面单线程模型 .it是一个标记界面。 它使servlet的这个对象同步,即一次只有一个线程服务于对象。但是它会产生响应延迟等问题。对于解决方案,它们会创建对象池,但是池也有限制。所以最好使用同步块