單例設計模式之懶漢式(線程不安全)


package com.waibizi.demo03;
/**
 * 優點:起到了懶加載的效果,但是只能在單線程的情況下使用
 * 缺點:如果是多線程下,一個線程已經進入了if(instance==null) 但是還沒來得及實例化,這時候另外一個線程也進入了if(instance==null) ,這時便會產生多個實例
 *            所以在多線程的情況下不能使用這種懶漢式加載
 * @author 歪鼻子
 *
 */
@SuppressWarnings("all")
public class Singleton_Pattern {


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Singleton test = Singleton.getInstance();
        Singleton test1 = Singleton.getInstance();
        System.out.println(test.hashCode());
        System.out.println(test1.hashCode());

    }

}
@SuppressWarnings("all")
class Singleton{
    private static Singleton instance;
    private Singleton() {
        
    }
    
    //提供一個靜態的公有方法,當使用該方法時,才去創建instance
    //即懶漢式加載
    public static Singleton getInstance() {
        if(instance==null) {
            System.out.println("我只初始化了這一次哦");
            instance=new Singleton();
        }
        return instance;
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM