两点:volatile读写前后会加屏障,避免跟前后的读写操作发生指令重排

    volatile和synchronized保证可见性和有序性,原来都是通过各种内存屏障来实现的,因为加了内存屏障,就会有一些特殊的指令和实现,就可以保证可见性和有序性了,有序性在几个阶段的指令重排的问题