美文网首页
实现单例的几种方式

实现单例的几种方式

作者: 指尖架构141319 | 来源:发表于2019-12-13 11:10 被阅读0次

    1. 饿汉式

    public class SingleTon{
      private static SingleTon instance = new SingleTon();
      private SingleTon(){}
      public static SingleTon getInstance(){
        return instance;
      }
    }
    

    2. 懒汉式

    2.1 线程不安全
    public class SingleTon{
      private static SingleTon instance;
      private SingleTon(){}
      public static SingleTon getInstance(){
        if(null == instance){
          instance = new SingleTon();
        }
        return instance;
      }
    }
    
    2.2 加锁(类锁)
    public class SingleTon{
      private static SingleTon instance;
      private SingleTon(){}
      public static synchronized SingleTon getInstance(){
        if(null == instance){
          instance = new SingleTon();
        }
        return instance;
      }
    }
    
    2.3 双重判断(方法锁)
    public class SingleTon{
      private static volatile SingleTon instance;
      private SingleTon(){}
      private static SingleTon getInstance(){
        if(null == instance){
          synchronized(){
            if(null == instance){
              instance = new SingleTon();
            }
          }
        }
        return instance;
      }
    }
    

    相关文章

      网友评论

          本文标题:实现单例的几种方式

          本文链接:https://www.haomeiwen.com/subject/tbaruqtx.html