1. 懒汉模式
优点:延迟加载
缺点:会产生多线程同步吧
public class Singleton {
private static Singleton instance = null;
private Singleton() {
}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}会产生多线程问题吧?改造如下:
public class Singleton {
private static Singleton instance = null;
private Singleton() {
}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
对整个方法都加锁,太重了。实际只在第一次调用才需要加锁, 如何改?
TODO
2. 饿汉模式
优点:不会出现多线程同步问题?
缺点:对整个方法使用同步,会产生性能问题
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return instance;
}
}
本文深入探讨了单例设计模式中的懒汉模式与饿汉模式,分析了两种模式的优缺点,并针对多线程环境下可能产生的问题提出了改进方案。
1690

被折叠的 条评论
为什么被折叠?



