Servlet 2:线程安全

※ servlet的线程安全问题
问题产生的原因:
1.servlet是单例,一个servlet类只有一个对象在项目运行期间。
2.web项目项目本身就有多线程的特点,虽然我们在代码中没有写和线程相关的东西,但是这个多线程的特点是由服务器给我们提供出来的,一个客户端发送了一个请求,服务器接收到请求后就会建一个线程去处理这个请求。
所以就有可能出现这样的情况:俩个线程同时去访问同一个servlet对象.

※ Tomcat测试模式
在Eclipse中Servers点击Debug进入测试模式如图:
Servlet 2:线程安全
不同浏览器访问时,Tomcat都会创建一个线程,公用一个servlet。

如何解决/防止
1.加锁synchronized(注解中加asyncSupported=true)
2.尽量少的定义成员变量
因为只有成员变量才会产生线程安全的问题(在多个线程访问同一个对象的时候),方法中的局部变量是没有这样的问题的.
3.其他(实现一些安全性的接口)