Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负责的。
当客户端第一次请求某个Servlet时,Servlet 容器将会根据web.xml配置文件实例化这个Servlet类。
当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有多个线程在使用这个实例。
有如下几种方式可以解决Servlet的线程安全:
1.当Servlet实现了SingleThreadModel接口,Servlet引擎将为每个新的请求创建一个单独的Servlet实例,可以解决线程安全问题,但这将引起大量的系统开销;
2.通过同步块操作来保证Servlet的线程安全;
3.避免使用实例变量。
参考:http://www.yesky.com/334/1951334.shtml
http://developer.51cto.com/art/200907/133827.htm
当客户端第一次请求某个Servlet时,Servlet 容器将会根据web.xml配置文件实例化这个Servlet类。
当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有多个线程在使用这个实例。
有如下几种方式可以解决Servlet的线程安全:
1.当Servlet实现了SingleThreadModel接口,Servlet引擎将为每个新的请求创建一个单独的Servlet实例,可以解决线程安全问题,但这将引起大量的系统开销;
2.通过同步块操作来保证Servlet的线程安全;
3.避免使用实例变量。
参考:http://www.yesky.com/334/1951334.shtml
http://developer.51cto.com/art/200907/133827.htm