采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,这个getinstance方法上直接加锁是一个判空和一个new,双重检测机制先判空 然后锁里又要判空和new操作 。。。。 这样岂不是双重检测机制的性能更差么。。。为什么不直接用直接锁方法呢
你好,这个里面性能差别很大,而且是双重检测的性能要好很多。核心点就在于第一次判空那里,双重检测只在那个瞬间会让synchronized代码段起作用,之后使用时因为已经初始化,会直接在判断完返回实例。而直接加锁的话,相当于每次获取这个实例时都要经过synchronized锁,每次只能有一个线程可以去获取,这样在实际中可能会带来大量的阻塞。我们都知道锁很影响性能,因此在实际使用时要尽可能让锁的范围更小。
登录后可查看更多问答,登录/注册
构建完整并发与高并发知识体系,倍增高薪面试成功率!
1.7k 1
1.1k 18
1.1k 15
3.5k 12
1.2k 12