您的位置:首页 > 其它

线程安全的单例懒汉模式(互斥锁)

2017-01-06 13:40 141 查看

线程安全的单例懒汉模式(互斥锁)

//关于懒汉式的线程安全问题,使用同步机制:
//对于一般的方法内,使用同步代码块,可以考虑使用this.
//对于静态方法而言...使用当前类本身充当锁.

class Singleton{

1.私有化构造器
private Singleton(){

}
2.私有化静态实例
private static Singleton instance = null;
3.对外提供一个公共的静态方法得到实例
public static Singleton getInstance(){
//这里为了提高效率,所以加了一个if判断,若第一次线程进入后已经创建好实例,那么则直接跳过同步块,直接返回实例对象即可,从而不用每次都去访问.
if(instance == null ){
//线程安全的,这里的锁调用自己的类,但是效率稍微低一些
synchronsized(Signleton.class){
if(instance == null){

instance = new Singleton();

}
}
return instance;
}
}
}

public class TestSingleton{

public static void main(String[] args){

Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
System.out.println(s1 == s2);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: