什么是"顺序一致的执行没有数据竞争"?

new*_*man 7 java memory-model

JLS中,§17.4.5.发生在秩序之前,它说

当且仅当所有顺序一致的执行没有数据争用时,程序才能正确同步.

它只给我们定义"顺序一致",它没有给我们定义"顺序一致的执行".只有在知道什么是"顺序一致的执行"之后,我们才可以进一步讨论该主题.

什么是"顺序一致的执行"以及什么是"顺序一致的执行没有数据竞争"?

Mar*_*nik 4

执行有一个非常简单的正式定义:它只是对正在考虑的所有内存操作集的总排序。

顺序一致的执行由顺序一致的操作的任何总排序来表示。

JLS 也对术语“无数据竞争”进行了精确定义。

请注意,JLS 不需要顺序一致性。事实上,发生之前的整个形式主义的存在是为了精确定义顺序不一致的执行可以维持顺序一致性幻觉的术语