tomcat servlet 线程

在服务器里,有一个servlet,当客户端第一次访问服务器时,tomcat会 帮我们建一个servlet的对象出来,(注意: tomcat里面可能部署了10个Servlet,如果某一个Servlet从未有客户端调用过,那我们new它的实例,企不是没有意义,所以new实例 出来,是客户端第一次访问的时候。)然后帮忙高用init(ServletConfig)方法,这个方法可以做一些初始化的工作,而且这个方法也只调用一 次,接着以多经程的方式,处理客户端的请求,例如一个请求过来了,tomcat帮忙调用service()方法,service()方法又调用了受保护的 service()方法,这个受保护的service()方法,又帮忙调用了doGet()或是doPost()方法。

多线程是怎么回事呢?tomcat内部有一个线程池,如果这个servlet的访 问量很大,一下子有100个人,全部过来了,tomcat 不会帮我们new出100个HelloWorldServlet的对象出来的,自始至终,这个对象只有一个,这个对象会提前准备出若干个线程,但是让一个 线程跑起来,是有开销的,有时开销我们都会感觉出来的,因为线程比较耗时,所以,让线程提前跑起来,这些跑起来的线程组成一个线程池。

客户端的请求,比如,第一个请求过来了,tomcat会从线程池,分配一个空闲的线程,处理这个请求,如果同时有第二个客户端的请求过来了,tomcat从线程池里分配另外一个闲着的线程,处理第二个请求,也就是说,以是这种并发的方式进行处理的,多线程的方式处理的。

每一个线程,都是访问同一个servlet对象,都是通过这一个对象的引用,调用service()方法。

时间: 2024-11-04 22:12:23

tomcat servlet 线程的相关文章

(2.1)servlet线程安全问题

本文参考链接:http://www.yesky.com/334/1951334.shtml 摘 要:介绍了Servlet多线程机制,通过一个实例并结合Java 的内存模型说明引起Servlet线程不安全的原因,给出了保证Servlet线程安全的三种解决方案,并说明三种方案在实际开发中的取舍. Servlet/JSP技术和ASP.PHP等相比,由于其多线程运行而具有很高的执行效率.由于Servlet/JSP默认是以多线程模式执行的,所 以,在编写代码时需要非常细致地考虑多线程的安全性问题.然而,很

Servlet线程不安全是如何体现的?

在这个遍地框架的年代,我相信很多人对于底层的Servlet的深入了解肯定很少,但是大家肯定对于Servlet的线程安全肯定有所涉猎,也都能讲个大概.我也和大家一样,在一次与同事之间 的闲聊时,谈到了Servlet(PS:现在的工作中应用的框架就只有spring,其他俩个框架没有用,用的是Servlet.)突然说到线程安全的问题,我不假思索的说句,Servlet之所以线程不安全,是 因为Servlet共享了一个实例变量,所以在多线程的环境下容易产生线程不安全的问题.但是同事却抛出了另外一个问题:S

servlet 线程安全问题的解决

一,servlet容器如何同时处理多个请求. Servlet采用多线程来处理多个请求同时访问,Servelet容器维护了一个线程池来服务请求. 线程池实际上是等待执行代码的一组线程叫做工作者线程(Worker Thread),Servlet容器使用一个调度线程来管理工作者线程(Dispatcher Thread). 当容器收到一个访问Servlet的请求,调度者线程从线程池中选出一个工作者线程,将请求传递给该线程,然后由该线程来执行Servlet的service方法. 当这个线程正在执行的时候,

javaweb回顾第六篇谈一谈Servlet线程安全问题

前言:前面说了很多关于Servlet的一些基础知识,这一篇主要说一下关于Servlet的线程安全问题. 1:多线程的Servlet模型 要想弄清Servlet线程安全我们必须先要明白Servlet实例是如何创建,它的模式是什么样的. 在默认的情况下Servlet容器对声明的Servlet,只创建一个Servlet实例,那么如果要是多个客户同时请求访问这个Servlet,Servlet容器就采取多线程.下面我们来看一幅图 从图中可以看出当客户发送请求的时候,Servlet容器通过调度者线程从线程池

Android网络(3):HttpClient作客户端,Tomcat Servlet作服务器的交互示例

前面相继介绍了Android网络编程里的Socket传输图片.HttpURLConnection,今天看HttpClient. 第一部分:JavaEE版的Eclipse配置Tomcat [备注:开发后台服务器用Eclipse的JavaEE版最好的,但单就Tomcat来说(不写jsp之类的),本文下面的服务器方面操作在普通版的Eclipse也是可以的.我这里为了和ADT-bundle分开,特意重新安个JavaEE版的Eclipse.] 1.下载Eclipse的Tomcat插件:http://www

Servlet线程安全

public class servletDemo1 extends HttpServlet { int i=0; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { i++; System.out.println(i); } } public class servletDemo1 extends HttpServlet

过滤器、监听器、上下文、servlet线程安全问题

就像名字写那样,过滤器可以过滤请求,比如对一些评论进行过滤.又不改原有代码的基础上可以加上一个过滤器,或者是登陆验证.集中在一个过滤器中处理.写一个类实现接口 Filter 之后一定要在配置文件中配置!!!监听器可以监听,上下文的概念. 过滤器: 什么是过滤器: servlet规范当中定义的一种特殊的组件,用来拦截servlet容器的调用过程. 会先调过过滤器的方法,过滤器决定是否向后继续调用就是调用servlet容器 容器收到请求之后 通常情况下会调用servlet的service方法来处理请

Tomact高并发&Servlet线程处理

Servlet/JSP技术和ASP.PHP等相比,由于其多线程运行而具有很高的执行效率.由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全性问题.然而,很多人编写Servlet/JSP程序时并没有注意到多线程安全性的问题,这往往造成编写的程序在少量用户访问时没有任何问题,而在并发用户上升到一定值时,就会经常出现一些莫明其妙的问题. Servlet生命周期 1.装载Servlet.这项操作一般是动态执行的.然而,Server通常会提供一个管理的选项

1.Tomcat&Servlet

1.Tomcat&Servlet 原文地址:https://www.cnblogs.com/jianfeihua/p/11747112.html