据说可以使用volatile变量来实现同步。但是,volatile变量仍然容易受到内存一致性错误的影响。为什么会这样?
答案 0 :(得分:1)
答案 1 :(得分:0)
否易失性变量本身不受内存一致性错误的影响。 volatile变量建立内存屏障并尊重关系之前发生的事情,因此write被刷新到主内存,因此读取是一致的。 操作需要原子。
假设我是int。
i=10
没问题
i++
不是原子的,它相当于读取递增它然后推送它的当前值。
对于boolean
变量,唯一合理的操作是赋值,因此可以一致地使用它们。
再次操作需要原子。