天天看点

struts1与struts2的线程安全问题

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

struts1则是单实例多线程的,所以必须要注意线程的安全性。

 所以相对来说,struts1 要多使用局部变量,而struts2使用 实例变量则不会产生不安全的结果

struts1的每个action其实只对应一个实例(单例),而action本身又不带属性,如果你给其action加入了属性的话,那么,所有的请求都调用这个action,那么就共享这个数据了,但是,你加入的属性本身是没有进行线程安全的处理的(即加入synchronized等,因此是不安全的)。struts1本身是采用单例来进行处理的,而且不考虑action有成员变量的问题,因此,它本身也就不用考虑线程安全的问题(毕竟考虑线程安全会增加系统开销的),但是你可以自己实现线程安全。

继续阅读