struts中Action的线程安全性分析
来源:互联网 发布:善软件 小众 编辑:程序博客网 时间:2024/05/19 14:02
不知道从哪个地方入的口,一直看到Action是否是安全的,在网上找了一大通答案。乱的很,有的说Action是线程安全的,有的说是线程不安全的。最后发现,原来说线程安全的是基于struts2的,而说线程不安全的是基于struts1的。
总结:
struts1中,每一个Action在web容器中只会有一个实例,因此它是不安全的(我们必须明白什么样的变量是线程安全的,方法内的局部变量和方法的参数变量都是线程安全的,所以即使系统只启用一个Action对象为所有线程服务,因为Form对象对每个请求来说都是单独创建的,而且是做为参数传到Action里,所以Form对象一定是线程安全的. )只要在Action中不使用实例变量就可以避免线程不安全的问题了。
struts2中,Action是多实例的,每一个请求会创建一个action。
Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能做的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的;Struts 2 Action对象为每一个请求产生一个实例,因此没有线程安全问题 。
Servlet也是线程不安全的。有关于Servlet的线程安全问题请看这篇文章:http://www.yesky.com/334/1951334.shtml。
总结:
struts1中,每一个Action在web容器中只会有一个实例,因此它是不安全的(我们必须明白什么样的变量是线程安全的,方法内的局部变量和方法的参数变量都是线程安全的,所以即使系统只启用一个Action对象为所有线程服务,因为Form对象对每个请求来说都是单独创建的,而且是做为参数传到Action里,所以Form对象一定是线程安全的. )只要在Action中不使用实例变量就可以避免线程不安全的问题了。
struts2中,Action是多实例的,每一个请求会创建一个action。
Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能做的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的;Struts 2 Action对象为每一个请求产生一个实例,因此没有线程安全问题 。
Servlet也是线程不安全的。有关于Servlet的线程安全问题请看这篇文章:http://www.yesky.com/334/1951334.shtml。
1 0
- struts中Action的线程安全性分析
- struts中Action的线程安全性分析
- struts中Action的线程安全性分析
- struts中Action的线程安全性分析
- struts中action的线程安全问题
- Struts中Action的线程访问安全问题
- struts中Action线程安全问题
- Struts Action的线程安全问题
- shared_ptr的线程安全性分析
- servlet与Struts action线程安全问题分析
- servlet与Struts action线程安全问题分析
- servlet与Struts action线程安全问题分析
- servlet与Struts action线程安全问题分析
- servlet与Struts action线程安全问题分析
- servlet与Struts action线程安全问题分析!
- servlet与Struts action线程安全问题分析
- servlet与Struts action线程安全问题分析
- servlet与Struts action线程安全问题分析!
- js中的||(或)运算究竟返回什么?
- 第一篇博文,请多多关照哈
- 【寒江雪】用例图
- AsyncTask还要知道的一些知识
- Java对象内存结构及大小计算
- struts中Action的线程安全性分析
- SpringMVC基础_常用注解
- C#中去掉Toolstrip边框的方法
- 程序外调用系统发短信
- 院长告诉你Java堆和本地内存到底哪个更快!
- mfc 获取主对话框指针(在全局函数中使用对话框类函数)
- 概率算法总结
- 学习C++的50条忠告
- Spring之ContextLoaderListener的作用