volatile关键字需要知道的内容

自我检测

1.volatile关键字的作用

2.volatile是否是安全的,为什么

3.volatile什么时候是安全的

 

 

 

 

 

 

 

 

 

1.volatile关键字的作用

  1)保证可见性:我称之为保证立即可见性,即不同线程在使用volatile修饰的变量前都会立即获取其最新值,修改后都会立即更新其最新值。

  2)禁止指令重排序:JVM虚拟机允许对变量的创建地址,赋值,指向三个操作进行顺序优化,但是在多线程场景中这样可能会导致错误,volatile禁止虚拟机在运行时进行这种优化。

2.volatile是否是安全的

  不安全,虽然保证可见性保证了变量立即更新,但是对于非原子性的操作,如i++,是不能保证每一步都立即更新的。

3.volatile什么时候是安全的

  只读不写,或者保证只有一个线程写

posted @ 2020-03-04 10:44  刘靖宇  阅读(105)  评论(0编辑  收藏  举报