您的位置:首页 > 编程语言 > Java开发

JAVA实现单例模式

2016-07-24 20:42 591 查看
<span style="font-size:14px;">public class Singleton {
private Singleton(){}
private static Singleton instance=null;
public static synchronized Singleton getInstance(){
if(instance == null)
instance=new Singleton();
return instance;
}

}
</span>

但是这种方式在多线程模式下不安全。加入线程A执行完if语句后暂停,线程B执行后new了一个实例,线程A重新启动后又会new一个实例。

下面是多线程安全的方式:

public class Singleton{
private Singleton(){}
private static Singleton instance=null;
public static Singleton getInstance(){
if(instance == null){
synchronized(Singleton.class){
if(instance==null){
instance = new Singleton();
}
}
}
return instance;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: