设计模式
public class Singleton{
private Singleton(){}
private static Singleton single=null;
private static Object obj = new Object();
public static Singleton GetInstance(){
if(single==null){
lock(obj){
if(single==null){
single=new Singletion();
}
}
}
return single;
{
}
1、私有化的构造函数
2、静态的单列对象
3、对象锁(保证线程安全)
锁必须是引用类型,而不能是值类型。不能使用int类型,只能是对象引用,这样才能保住每次的lock都是针对同一地址空间(引用类型),如果是int类型(是值类型),那么每个线程在申明值类型时的变量地址都不同,lock都不是同一个,所以锁也就没有了意义。
4、一定要经过两次判断,否则因为延迟和缓冲会使得创建多个实例。