1、可见性:当一个线程修改了共享变量后,其他线程能够立即看到修改后的值
使用volatile关键字修饰的变量,修改是直接修改主内存的值,读也是直接从主内存读(跳过本地内存),所以其他线程能立即看到修改后的值。
2、有序性:由于现代计算机体系结构中存在指令重排的优化机制来提高执行性能,使用volatile让执行顺序和Java源代码顺序一致。
可见性demo
public class VolatileDemo {
private volatile static Integer flag=1;