为了账号安全,请及时绑定邮箱和手机立即绑定

请教各位一个问题,求解答:利用SpringIOC实现策略模式有必要使用ConcurrentHashMap吗十分感谢

请教各位一个问题,求解答:利用SpringIOC实现策略模式有必要使用ConcurrentHashMap吗十分感谢

冉冉说 2019-08-21 12:44:54
目前就是一个虚基类的Service有三种实现,类属性都是Autowire的然后注入到Map中调用这个Map有没有必要使用ConcurrentHashMap呢?一般情况下Service都是单例的,应该没有因多线程产生的问题但是刚看一个帖子的时候贴主用了ConcurrentHashMap也没说为啥所以想请教一下
查看完整描述

2 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

Spring项目中很多bean都设计成配置完成后线程安全的,也是就是在Spring初始化阶段,因为Spring本身是单线程初始化,不会遇到问题,初始化完成后,不再修改,属性只读,也就不存在多线程修改造成竞态的问题.你要确保在使用过程中不修改,也就不需要ConcurrentHashMap,反过来说是要用的.
                            
查看完整回答
反对 回复 2019-08-21
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

一般情况下Service线程安全的,并不是因为它是单例的,而是因为贫血模型中Service基本上都是无状态的。假设你是以下面的方式将Service注入到Map的:
@Autowired
privateMapservices;
这个Map是否需要ConcurrentHashMap得看你怎么使用这个services,假设你在Spring初始化以后就不在更新services中的内容只是从中获取service,那么没必要使用ConcurrentHashMap。反之如果你会在之后多线程更新这个Map,那么就需要使用ConcurrentHashMap。
                            
查看完整回答
反对 回复 2019-08-21
  • 2 回答
  • 0 关注
  • 463 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号