volatile真正解决的问题是 JVM 在server模式下, 线程优先取用自己的线程私有stack中的变量值, 而不是公共堆中的值, 造成值老旧的问题;volatile强制要求了所有线程在使用变量的时候要去公共内存堆中获取值, 不可以偷懒使用自己的
volatile不会像锁一样造成阻塞,要求对变量的写操作不依赖于当前值,适用场景:状态等
volatile绝对不保证原子性, 原子性只能用synchronized同步修饰符实现
volatile真正解决的问题是 JVM 在server模式下, 线程优先取用自己的线程私有stack中的变量值, 而不是公共堆中的值, 造成值老旧的问题;volatile强制要求了所有线程在使用变量的时候要去公共内存堆中获取值, 不可以偷懒使用自己的
volatile不会像锁一样造成阻塞,要求对变量的写操作不依赖于当前值,适用场景:状态等
volatile绝对不保证原子性, 原子性只能用synchronized同步修饰符实现