volatile为什么不保证原子性
时间: 2023-10-18 11:48:44 浏览: 105
java中volatile不能保证线程安全(实例讲解)
volatile关键字可以保证可见性和有序性,但是不能保证原子性。因为volatile只能保证对单个volatile变量的读写具有原子性,但是对于多个volatile变量的复合操作,volatile无法保证其原子性。例如,对于i++这样的操作,它包含了读取i的值、对i进行加1、将加1后的值写回i三个步骤,而这三个步骤并不是原子性的,因此volatile无法保证i++操作的原子性。
阅读全文