Servlet放入线程不安全的问题。

版权声明:未经同意窃取和转载我的内容,如果涉及到权益问题,后果自负! https://blog.csdn.net/weixin_41605937/article/details/85769481

Servlet线程不安全问题:

造成这样的根本原因:Servlet是单例的。Servlet中的非static的成员变量只有一份。多个客户端就好比多个线程。都是访问同一个空间。

解决方法:

让当前的Servlet中实现接口:

javax.servlet Interface SingleThreadModel接口 保证只有一个Servlet接口。如果有多线程资源排队。但是如此效率的很低。性能超低级。(已经过时)

在Servlet中不要使用说成员变量 。尽可能使用局部变量。每一个用户都会有一个service的方法。而局部变量在service方法中 每一次的方法都是新的空间。

但是Struts spring MVC框架都是线程不安全的。因为都是单例的模式和Servlet类似。

在Struts2的线程是安全的。因为每一个线程都是一个新的Action对象。

猜你喜欢

转载自blog.csdn.net/weixin_41605937/article/details/85769481