volatile线程可见性
-
CPU缓存中的volatile字段被一个线程修改后,其他CPU缓存中的线程在读 本地CPU缓存的
volatile字段时,就必须读取更新过的字段。 volatile -
保证多线程情况下修饰的这个变量的可见性,一个线程去改变了这个变量的值,能够立即刷新,保证另一个线程读取最新的值
-
局限,也就是先限制,volatile这个关键字修饰的变量保证其变量的可见性,这个变量不能做非原子操作,做了就不能保证其安全。
当我们引用volatile来修饰flag时,可以允许根据赋值改变方法内部结构
非原子操作,volatile不能保证非原子操作的可见性