Jersey(servlet)的线程安全

33 篇文章 0 订阅
22 篇文章 0 订阅
#Jersey的控制器是单例的,因此需要保证多个请求到来时出现多线程并发访问Controller.


处理并发的方法:
 
 - 1.类的访问域的所有成员都采用不可变的(只读)。
 - 2.对可变的成员加锁(保证被访问的成员线程安全)。
 - 3.采用无状态。


 对于控制层我们采用第二种方案。(第一种,我们很难保证服务层的成员只读,因为他是业务逻辑层第三种,也可行,只是说我们最终还是得解决线程安全问题,而且我不打算在控制器去采用无状态策略,因为无状态,会使得我们在控制器的方法里面new很多服务类,导致资源浪费。)
 第二种方案使得控制层的线程共用服务类,并且服务类是线程安全的。
 
 那么,服务层的类怎么保证线程安全呢?
 采用第三种方案,让服务类无状态,即,让服务类没有参数。
 
 而DAO在需要用到的时候才在方法里面去NEW(或者说dao是多例的,从而避免的考虑线程安全问题)
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值