'Volatile Rule'表示“对 volatile 字段的写入发生在同一字段的每次后续读取之前”, 我知道这意味着如果我们写入一个 volatile 线程并在另一个线程中读取另一个 volatile,那么这两个操作之间没有 happens-before 关系。
我的问题是为什么我们必须使用“相同字段”?
最佳答案
它应该是这样工作的不是吗?我们只希望线程之间共享的数据应该是一致的,那么为什么不同变量之间要有 happens-before 关系呢?在同一领域的关系之前发生是有道理的,因为如果我们不这样做,可能会导致数据竞争。不是吗?
关于java - 为什么我们必须使用相同的 volatile 字段来使用 volatile 关键字建立 happens-before 关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46945026/