单例模式




(1)  /* 线程安全 但效率比较低  一开始就要加载类new一个 对象 这是饿汉方式的单例模式*/  

  public class Singleton1 { 

       private Singleton1(){  }   

       private static final Singleton1 instance=new Singleton1();  

       public static Singleton1 getInstancei(){   

            return instance;  

       } 

  } 

 

 

(2)// 饱汉(懒汉)方式的单例模式 但是有多个线程访问时就不是安全的 返回的不是同一个对   象

   public class Singleton {  

        private Singleton(){  }   

        private static Singleton instance;  

        public static Singleton getInstance() {   

                 if (instance == null)     

                      instance = new Singleton();    

                  return instance;   

         }  

   } 

 

(3)  //虽然是安全的 但是效率非常低在一个时候只有一个线程能访问  同时返回一个对象  

   public class Singleton2 {  

     private Singleton2(){  }   

     private static Singleton2 instance;   

     public static synchronized Singleton2 getInstance() {     

     if (instance == null)    

         instance = new Singleton2();   

     return instance; 

 }    

   } 

 

 

 

(4)  /* 线程安全  并且效率高  能有多个线程访问*/ 

public class Singleton3 { 

    private static Singleton3 instance; 

    private Singleton3() {  }   

    public static Singleton3 getIstance() {  

        if (instance == null) {    

               synchronized (Singleton3.class) {    

                  if (instance == null) {       

                        instance = new Singleton3();    

                  }     

                }    

         }    

        return instance;  

    }  

}  

阅读更多
想对作者说点什么? 我来说一句

单例模式单例模式单例模式

2011年07月31日 467KB 下载

研磨单例模式研磨单例模式

2010年12月15日 123KB 下载

单例模式(讲解单例模式)

2011年01月18日 317KB 下载

php单例模式和工厂模式

2009年05月22日 54KB 下载

Java单例模式(DOC)

2009年10月21日 91KB 下载

JAVA单例模式

2013年11月14日 46KB 下载

设计模式之单例模式

2017年12月01日 9KB 下载

线程安全的单例模式

2012年12月07日 345KB 下载

单例模式详解~~单例模式详解~~

2011年03月01日 39KB 下载

研磨设计模式之单例模式.pdf

2011年11月16日 311KB 下载

没有更多推荐了,返回首页

关闭
关闭