解决懒汉式线程安全问题
/**
-
懒汉式单例模式:
-
1.只能创建一个对象,所以构造器必须是私有化的,只能在内部去创建一个对象
-
2.私有静态属性保存实例化对象,保证内存中只有这一个实例化对象
-
3.判断实例化对象是否为空,如果为空则利用私有化构造器创建一个对象
-
4.同步代码块和同步方法的方式都可以解决当前的线程安全问题
*/
class Bank
{
//私有的静态的属性保存Bank类对象
private static Bank bank = null;//私有的构造器,防止Bank在类外面创建对象
private Bank(){};//公共的静态的方法得到Bank类的唯一对象
public static /synchronized/ Bank getInstance()
{
if(bank == null)
{
synchronized (Bank.class)
{
if(bank == null)
{
/此处如果使用synchronized其他线程可能就会在此处等待,一旦上一个线程释放锁,其他线程还是会执行下一行代码,仍然还是会出现线程安全问题/
/此处可能回出现线程安全问题*****/
bank = new Bank();
}
}
}
return bank;
}
}