1、谈谈对volatile的理解
volatile是Java虚拟机提供的轻量级的同步机制。有三个特性:保证可见性;不保证原子性;禁止指令重排。
2、volatile可见性代码验证
代码第5行没有加volatile的执行结果
main线程感知不到number的变化,一直在while循环中。线程不会结束。
代码第5行加上volatile的执行结果
只要有一个线程修改了主物理内存的值,刷新回去的时候,只要是加了volatile关键字的变量,其他线程迅速收到通知,马上拿到主物理内存的最新值。
来源:https://www.cnblogs.com/yangyanbo/p/12379895.html