servlet-Servlet与多线程的关系是什么?

问题描述

Servlet与多线程的关系是什么?

我知道Servlet是一个线程不安全的实例化的对象,JMM模型里线程有缓存和堆,堆是线程自己专用的。
为了安全打印某个用户信息,我就在Servlet的方法里新建一个局部变量 print。

如果A、B俩用户同时访问这个Servlet,
那么Servlet方法内的局部变量print是在Servlet实例的堆里面?
还是分别在AB两个线程的堆里面啊?

这个过程理解为AB两个线程的run方法里同时用了这个Servlet实例?
还是理解为AB两个线程的run方法就是Servlet执行的方法呢?

解决方案

Servlet是单例的,一般不建议在Servlet中创建局部变量,如果确实需要,则需要考虑同步

时间: 2024-08-30 18:04:13

servlet-Servlet与多线程的关系是什么?的相关文章

浅析javax.servlet.Servlet,ServletContext接口

1.ServletConfig接口用于描述Servlet本身的相关配置信息.ServletContext接口用于描述应用程序(server.xml中的一个Context配置,即一个虚拟目录)的相关信息. 2.Servlet配置初始化参数,例如: 复制代码 代码如下: <servlet>  <servlet-name>XXX</servlet-name>  <servlet-class>Xxx</servlet-class>  <init-p

编程-多核CPU和多线程的关系

问题描述 多核CPU和多线程的关系 CPU的多核,和多线程编程有关系吗?多线程编程是以多核的CPU为基础的吗 解决方案 要想利用多个cpu工作,必须使用多线程,包括多个单线程的进程. 但是多线程未必能利用到多个cpu. 即便没有多cpu,一些程序仍然可以从多线程中获益,比如说,多线程下载,多线程可以隐藏单个线程的网络延迟,提高网络使用效率,加快下载,以及避免长时间计算或者等待造成界面挂起. 解决方案二: 多线程和多少个cpu不是有什么联系,就是单核cpu也一样能做多线程,那么cpu多了,可能就会

jsp-java.lang.NoClassDefFoundError: javax/servlet/Servlet

问题描述 java.lang.NoClassDefFoundError: javax/servlet/Servlet tomcat6.0和MyEclipse发布网站服务端,总是报这个错误,百度了很多方法都没有解决掉问题,求帮助 type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. ex

《深入剖析Tomcat》一2.1 javax.servlet.Servlet接口

2.1 javax.servlet.Servlet接口 Servlet编程需要使用到javax.servlet和javax.servlet.http两个包下的接口和类.在所有的类和接口中,javax.servlet.servlet接口是最为重要.所有的servlet程序都必须实现实现该接口或继承自实现了该接口的类. 在Servlet接口中声明了5个方法,方法签名如下: 在Servlet接口中声明的5个方法里,init().service()和destroy()方法是与servlet的生命周期相关

浅析javax.servlet.Servlet,ServletContext接口_java

1.ServletConfig接口用于描述Servlet本身的相关配置信息.ServletContext接口用于描述应用程序(server.xml中的一个Context配置,即一个虚拟目录)的相关信息.2.Servlet配置初始化参数,例如: 复制代码 代码如下: <servlet> <servlet-name>XXX</servlet-name> <servlet-class>Xxx</servlet-class> <init-param

个人对于异步和多线程的关系的理解分享_IOS

个人的理解是这样的: 1.  异步通信的意思是,当A发送完消息之后,不等待B的回应,继续执行之后的程序.在将来的某个时刻,A再来检查是否收到B的回应.      异步就是彼此独立,在等待某事件的过程中继续做自己的事,不需要等待这一事件完成后再工作. 2. 多线程是程序设计的逻辑层概念,它是进程中并发运行的一段代码.多线程可以实现线程间的切换执行. 3. 异步和同步是相对的,同步就是顺序执行,执行完一个再执行下一个,需要等待.协调运行.线程就是实现异步的一个方式.异步是让调用方法的主线程不需要同步

Servlet Servlet与JSP九大内置对象

Servlet与JSP九大内置对象对照表: Jsp内置对象out与servlet中response.getWriter()获得对象并不完全匹配,Jsp中是JspWriter类型,而servlet中获得是PrintWriter类型,其实一个是在Jsp中输出,一个是在servlet中输出,类型肯定不一样: request.response内置对象可以通过service()方法传到doGet().doPost()里的request.response来获取: session可以通过request.get

Servlet Servlet的路径跳转

Servlet的路径跳转 一.JSP跳转到Servlet 1.相对路径,如href="servlet/TestServlet" 如果写成"/servlet/TestServlet"会报错,因为第一个"/"表示的是[服务器根目录] 2.绝对路径,通过内置成员变量path实现,如href="<%=path%>/servlet/TestServlet" path得到的是项目根目录,如[http://localhost:8

Servlet Servlet的装载三种情况

Servlet的装载三种情况: 1.自动装载:某些Servlet如果需要在Servlet容器启动时就加载,需要在web.xml下它的<Servlet>标签里中,添加优先级代码: <Servlet> <load-on-startup>1<load-on-startup> </Servlet> 数字越小表示该servlet的优先级越高,会先于其他自动装载的优先级较低的先装载 2.Servlet容器启动后,客户首次向某个Servlet发送请求时,Tom