单例模式-懒汉和饿汉

/**
 * 懒汉模式,有线程安全问题
 */
public class Singleton {
    public static Singleton singleton;

    public static Singleton getSingleton() {
        if(singleton==null){
            singleton = new Singleton();
        }
        return singleton;
    }
}

修改后的懒汉模式

/**
 * 懒汉模式,线程安全
 */
public class Singleton {
    public static volatile Singleton singleton;

    public static Singleton getSingleton() {
        if(singleton==null){
            synchronized (singleton){
                if(singleton==null){
                    singleton = new Singleton();
                }
            }
        }
        return singleton;
    }
}
/**
 * 饿汉模式
 */
public class Singleton {
    private static Singleton singleton = new Singleton();

    public static Singleton getSingleton() {
        return singleton;
    }
}
posted @ 2025-07-09 15:13  Charlie-Pang  阅读(4)  评论(0)    收藏  举报