自:http://blog.sina.com.cn/s/blog_614cb62d0100ezam.html
1.多线程时性能低下
public class S1 {
private static S1 s;
private S1(){}
public static synchronized S1 getS(){
if(s == null){
s = new S1();
}
return s;
}
}
2.比较常用的,但容易产生垃圾对象
public class S2 {
private static S2 s = new S2();
private S2(){}
public static S2 getS(){
return s;
}
}
3.双锁机制,安全且在多线程情况下能保持高性能
public class S3 {
private static S3 s;
private S3(){}
public static S3 getS(){
if (s == null){
synchronized(S3.class){
if(s == null){
s = new S3();
}
}
}
return s;
}
}
1.多线程时性能低下
public class S1 {
private static S1 s;
private S1(){}
public static synchronized S1 getS(){
if(s == null){
s = new S1();
}
return s;
}
}
2.比较常用的,但容易产生垃圾对象
public class S2 {
private static S2 s = new S2();
private S2(){}
public static S2 getS(){
return s;
}
}
3.双锁机制,安全且在多线程情况下能保持高性能
public class S3 {
private static S3 s;
private S3(){}
public static S3 getS(){
if (s == null){
synchronized(S3.class){
if(s == null){
s = new S3();
}
}
}
return s;
}
}