
本文主要介绍了几种利用Synchronized关键字实现线程安全单例模式的几种情况,比较其利弊。
- Thread Safety & Singleton
A :
public class Singleton {
private Singleton() {}
private static Singleton instance = null;
public static Singleton getInstance() {
if(instance == null) {
instance = new Singleton();
}
return instance;
}
}
B :
public class Singleton{
private static Singleton instance=null;
private Singleton(){}
public static synchronized Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
C :
public class Singleton{
private static Singleton instance=null;
private Singleton(){}
public static Singleton getInstance(){
if(instance == null){
synchronized(Singleton.class){
instance = new Singleton();
}
}
return instance;
}
}
D :
public class Singleton{
private static Singleton instance=null;
private Singleton(){}
public static Singleton getInstance(){
if(instance == null){
synchronize (Singleton.class) {
if(instance == null){
instance = new Singleton();
}
}
}
return instance;
}




近期评论