读书人

单例模式三种模式

发布时间: 2012-10-24 14:15:58 作者: rapoo

单例模式三种方式
自: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;
}
}

读书人网 >编程

热点推荐