java 中 volatile 关键字

1. volatile 关键字保证修改对所有子线程立即可见,(cpu 对总线嗅探,缓存一致性协议,内存屏障)

2. 对于非原子性操作(多步),子线程读取最新值 A 后,在做别的操作的期间,值又被修改为 B,

这次操作只会使用 A 的值,而不是最新值 B。所以不要在非原子性操作中使用 volatile 变量,这样是

线程不安全的。

3. volatile 保证  read -> load ->use 和 assgin -> store -> write 不可断开

原文地址:https://www.cnblogs.com/wudeyun/p/13798813.html