[align=left][/align]简单单例模式:
public class danli(){
private danli(){
}
private static Test t = new Test();
public static Test getT(){
return t;
}
}
这种方法创建的单例缺点就是不能解决多线程问题!
懒汉式:
public class danli(){
private danli(){
}
private static Test t =null;
public static synchronized Test getT(){
if(t == null){
t = new Test();
}
return t;
}
}
这种方法解决咯上面多线程的问题!但是还存在一个性能的问题!当多个线程同时访问时候,进入方法的线程独占资源,后面的线程将一直等待;
双锁机制:
public class danli(){
private danli(){
}
private static Test t =null;
public static Test getT(){
if(t == null){
synchronized(Test.class){
t = new Test();
}
}
return t;
}
}
这种方法很好的解决咯上面的问题性能提高,支持高并发量;
本文介绍了三种不同的单例模式实现:简单单例模式、懒汉式单例模式及双锁机制单例模式。简单单例模式易于理解但无法解决多线程问题;懒汉式解决了多线程问题但性能欠佳;双锁机制则既解决了多线程问题又提高了并发性能。
2035

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



