httpservlet, struts1, struts2线程安全,单实例,多实例几个关系

以下内容转自:http://blog.163.com/xiangfei209@126/blog/static/986956742011924114042741/

总结如下

线程安全条件:
1)常量始终是线程安全的,因为只存在读操作。 
2)对构造器的访问(new 操作)是线程安全的,因为每次都新建一个实例,不会访问共享的资源。 
3)最重要的是:局部变量是线程安全的。因为每执行一个方法,都会在独立的空间创建局部变量,它不是共享的资源。局部变量包括方法的参数变量。
线程不安全条件:
1)单实例多线程并且该实例有类变量
Runnable safe=new ThreadSafe();
Thread thread1=new Thread(safe,"thread1");
Thread thread2=new Thread(safe,"thread2");
线程不安全到安全转换:
1)加synchronized 
2)  把单实例多线程转换成多实例多线程
httpservlet:
它是单实例多线程,有可能线程不安全(当含有类变量),线程不安全转换安全方法
参考:http://tech.163.com/05/0523/14/1KEML1JS00091589_2.html
struts1:
它是单实例多线程,线程安全,因为没有类变量,执行通过execute
struts2:
它默认是单实例多线程,线程不安全,因为有类变量,
线程不安全转换安全方法
就使用scope=prototype来指定是个原型模式,就变成多实例多线程。

参考文章:
http://japi.iteye.com/blog/432617
http://wsqwsq000.iteye.com/blog/1120671
http://tech.163.com/05/0523/14/1KEML1JS00091589_2.html
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值