java volatile 的问题

深入理解java虚拟机一书中说道,
valatile变量不需要与其他状态变量一同参与不变约束
这一句话应该如何理解?

valatile变量是进行原子性操作的保证,即用valatile修饰的变量会在当前线程栈中创建一个变量副本,操作不是去操作原来的变量,而是操作副本变量。在c语言中这个关键词用来强制要求编译器执行操作。

volatile只要两个作用。一个禁止寄存器cache。这样可以读取到最新值。另一个是它会防止指令重排。