1 可见性
不管是volatile读还是volatile写,都会重新访问主内存取最新的值
2 有序性(防止重排序)
volatile写前 storestore屏障 首先先把前面的普通写操作执行到主内存,在执行volatile写操作执行到内存(保证前面普通写操作和volatile写操作不重排,前面的写操作可以重排)
volatile写后 storeload屏障 首先先把volatile写操作执行到主内存,再执行后面的读或写操作
volatile读前 loadload 屏障 首先先把前面的普通读操作执行,再执行volatile读操作
volatile读后 loadstore屏障 首先先把volatile读执行,载执行后面的读写操作