单例模式的双重锁机制 为什么要加volatile?考虑以下控制流 线程A进入getInstance()方法,发现instance为空,进入同步块;线程B进入getInstance()方法,发现instance为空,但是线程A正在同步块中等待锁,因此等待;线程A在同步块中创建了一个新的实例,并将instance指向该实例;线程A退出同步块,线程B进入同步块;线程B也创建了一个新的实例,并将instance指向该实例;线程B退出同步块,此时instance指向的是线程B创建的实例,线程A创建的实例被丢弃。