package cn.itcast.mobilesafexian2.test;
public class Student {
//2 单例模式 (懒汉式:在使用的时候创建){有线程安全问题:因为需要(共享数据s和多步骤)判断,造对象,返回}
//懒汉式用了一种思想 :延时加载(用的时候再去创建)
//这种方法安全了 但影响效率
/* private Student(){};
private static Student s = null;
public synchronized static Student GetStudent(){//不安全 加锁但浪费性能
1,s= new Student();//存在问题每次调用都要 创建对象{所以加个判断 if(snull)}*
//s1,s2,s3
if(snull){
//s1,s2,s3
s=new Student();
}
return s;
}*/
//懒汉式(安全高效模式)
private Student(){};
private static Student s = null;
public static Student GetStudent(){//不安全 加锁
/1,s= new Student();//存在问题每次调用都要 创建对象{所以加个判断 if(s==null)}
*/
if(snull){
// A, B
//只有第一次进来时有锁子
synchronized (Student.class) {
//当ab 都进进来时
if(snull){
s=new Student();
}
}
}
return s;
}
}