** volatile ** 一、保证线程一致性 懒汉式 饿汉式 二、禁止指令重排序(超高并发) 双重检查+volatile 为防止指令重排序而导致的内存赋值错乱 volatile禁止指令重排序 JVM创建对象指令 第一个线程取值++得2,第二个线程取值++得2,返回count为2 .因为count++不是原子性操作