由单例设计模式想到的

今天看单例设计模式时,偶然想到一个问题:既然单例设计模式可以减少内存开销,为啥我们不把所有类都设计成单例的?这样就可以所有线程都共享一个对象,避免创建对象造成内存开销了。

个人观点:

打个比方,如果将HashMap 这种集合类设计成单例的话,如果多个线程同时访问该类的实例,可能会有线程安全问题。如果使用 concurrentHashMap 又会影响执行效率。如果不设计成单例的,每此实例化的对象都是不一样的,hash值不同。所以可以任意实例化HashMap ,提升执行效率,不用并发访问时多个线程排队等待创建对象的问题。但是如果遇到单个对象的线程安全问题,比如可能会用多个线程对本次实例化的对象访问,可以使用并发容器 ConcurrentHashMap 来保证线程安全。

欢迎各位看官评论,求证我的观点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值