请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

懒汉模式的双重检测机制

老师,这个getinstance方法上直接加锁是一个判空和一个new,双重检测机制先判空 然后锁里又要判空和new操作 。。。。 这样岂不是双重检测机制的性能更差么。。。为什么不直接用直接锁方法呢

正在回答

1回答

Jimin 2018-09-01 01:45:44

你好,这个里面性能差别很大,而且是双重检测的性能要好很多。核心点就在于第一次判空那里,双重检测只在那个瞬间会让synchronized代码段起作用,之后使用时因为已经初始化,会直接在判断完返回实例。

而直接加锁的话,相当于每次获取这个实例时都要经过synchronized锁,每次只能有一个线程可以去获取,这样在实际中可能会带来大量的阻塞。

我们都知道锁很影响性能,因此在实际使用时要尽可能让锁的范围更小。

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信