volatile的作用 保证可见性和有序性。 1.可见性。 当一个线程更改本地数据时会使其他线程缓存中的数据失效。(cache line的失效,并非某个变量) 2.有序性。 通过内存屏障禁止指令重排序。(loadload、loadstore、storestore、storeload屏障)。