volatile的特性
1. 原子性
对单个的volatile变量的读和写都是原子性的,但是类似与volatile++这种复合形式不是原子性的
2. 可见性
对单个volatile变量的读,总是能看到任意线程对这个volatile的最后写入
volatile的内存语义
volatile变量的读与写和锁的释放与获取具有相同的内存语义
1. volatile写的内存语义,任意线程对volatile变量的写,会将本地内存中的volatile的变量写到主内存中
2. volatile读的内存语义, 任意线程对volatile变量的写,会将本地内存中的volatile变量置为无效,去共享内存中读取该volatile变量