Servlet和Struts2的线程安全问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet和Struts2的线程安全问题相关的知识,希望对你有一定的参考价值。

 

通常情况下,系统只生成servlet的单一实例之后,为每个用户请求建立新的线程。如果很多请求同时到来,那么多个线程可能会并发的访问同一个servlet对象。servlet是线程不安全的,在多线程访问servlet的时候,有一些限制:

  • 尽量不要有成员变量;
  • 如果有成员变量,这个成员变量也要是无状态的成员变量;
  • 如果非要有成员变量,这个成员变量只能是只读的

struts2本身就是多实例、单线程的,所以可以说本身就是线程安全的。

(Action是线程安全的,因为struts2中,action是多例的)

技术分享

 

以上是关于Servlet和Struts2的线程安全问题的主要内容,如果未能解决你的问题,请参考以下文章

为什么原生的servlet是线程不安全的而Struts2是线程安全的?

浅析Struts1和Struts2的Action线程安全问题

为啥 Servlet 不是线程安全的? [复制]

struts2框架学习笔记1:搭建测试

Action / controller

Servlet的多线程和线程安全