** 高并发下单例的写法 ** 代码 对象的创建步骤(三步) 创建对象的2、3步可能会发***指令重排***,导致对象还没实例化,但是地址已经有了,在其他线程进来时,发现myinstance!=null,导致直接返回了一个只是存了一个地址的对象,里面其实啥都没有为了防止这种***指令重排***的情况产生,所以给这个变量加了***volatile***关键字修饰。