In JLS,§17.4.5。订单前发生 http://docs.oracle.com/javase/specs/jls/se7/html/jls-17.html#jls-17.4.5,它说
当且仅当所有顺序一致的执行都没有数据争用时,程序才能正确同步。
它只给出了“顺序一致”的定义,没有给出“顺序一致执行”的定义。只有了解了什么是“顺序一致执行”之后,我们才可以对这个话题进行进一步的讨论。
那么什么是“顺序一致执行”和“顺序一致执行不存在数据争用”?
执行有一个非常简单的正式定义:它只是对正在考虑的所有内存操作集的总排序。
顺序一致的执行由顺序一致的操作的任何总排序来表示。
JLS 也对术语“无数据竞争”进行了精确定义。
请注意,JLS 不需要顺序一致性。事实上,整个形式主义发生在之前存在是为了精确定义顺序不一致的执行可以维持的术语顺序一致性错觉.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)