java单例模式(双重检查加锁)的原因

Posted 安卓笔记侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java单例模式(双重检查加锁)的原因相关的知识,希望对你有一定的参考价值。

public class Singleton{  
   private static Singleton instance = null;//是否是final的不重要,因为最多只可能实例化一次。  
   private Singleton(){}  
   public static Singleton getInstance(){  
       if(instance == null){  
           //双重检查加锁,只有在第一次实例化时,才启用同步机制,提高了性能。  
           synchronized(Singleton.Class){  
               if(instance == null){  
                   instance = new Singleton();  
               }  
           }  
       }  
       return instance;  
   }  

 双重检查加锁,只有在第一次实例化时,才启用同步机制,提高了性能。 

以上是关于java单例模式(双重检查加锁)的原因的主要内容,如果未能解决你的问题,请参考以下文章

双重检查加锁单例模式为什么两次判断

单例模式的双重加锁机制为啥要两次检查,第一次检查完不是已经知道了吗?

Java单例模式中双重检查锁的问题

如何实现一个单例模式 c#双重锁检查

双重检查锁单例模式为什么要用volatile关键字?

双重校验锁实现单例模式