Java Servlets线程模型

时间:2010-01-19 17:17:48

标签: java servlets multithreading

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

有人可以解释一下吗?

3 个答案:

答案 0 :(得分:11)

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

通常,Web应用程序容器将维护一个用于处理请求的线程池,并根据需要将传入请求分配给线程。

答案 1 :(得分:1)

历史上,您有两种型号,具体取决于您的Servlet。如果Servlet实现SingleThreadModel,则排队的请求。否则,这是现在唯一的模型,Servlet必须能够同时提供多个请求。所以在该模型中没有排队,除非容器具有一些限速功能。

答案 2 :(得分:1)

是的,有一个界面单线程模型 .it是一个标记界面。 它使servlet的这个对象同步,即一次只有一个线程服务于对象。但是它会产生响应延迟等问题。对于解决方案,它们会创建对象池,但是池也有限制。所以最好使用同步块