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

java中两种单例模式

2016-02-15 16:31 519 查看
//懒汉式(线程不安全)
class LazySingleton{
private static LazySingleton singleton;

private LazySingleton(){}

public static LazySingleton getInstance(){
if(singleton==null){
singleton = new LazySingleton();
}
return singleton;
}
}

//饿汉式(推荐使用)
class eSingleTon{
private static eSingleTon singleton = new eSingleTon();

private eSingleTon(){}

public static eSingleTon getInstance(){
return singleton;
}
}


上面两个是单例模式,想必都不陌生。

对于懒汉式有个缺点,就是在多线程的情况会有一定的问题存在。假如线程A和线程B同时实例这个单例。进入if的判空就会分别实例出一个singleton.这就违背了单例模式的初衷。

这里推荐使用饿汉式,每次都会实例化,避免了多线程的问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: