java – JMM中的因果关系要求
我试图了解JMM的因果关系要求. JMM的这一部分描述了
https://docs.oracle.com/javase/specs/jls/se7/html/jls-17.html#jls-17.4.8
E在因果关系定义中意味着什么.这是否意味着执行我们试图证明或执行以证明从Ci到Ci 1的提交是正当的? 在因果关系定义的9条规则中,还有一个从A到动作的动作从Ci-1到Ci或Ci到Ci 1的动作. 解决方法
E是您尝试确定的因果有效性的执行. Ei是结构良好的执行,通过它可以在不引入总时间顺序概念的情况下处理因果关系.
我不确定我是否理解你的问题. 如果可以根据第17.4.8节中的规则提交所有操作,则执行在Java内存模型的因果关系要求方面是有效的. 本节中的规则定义了可以通过建立规则集来提交的内容,该规则集用于从空集的已提交操作构建到最终执行的所有操作集.这是在离散的步骤中完成的,并且每个步骤的已提交操作都有一致性规则和不变量,以及它们与不同执行中上一步的已提交操作的关系(E vs Ei from above). 至于根据最后一条规则(第17.4.8节中第九编号的子弹)按照定义提交动作,每组Ci是Ci 1的适当子集,因此动作不是从Ci到Ci 1,而是从A到Ci . 我发现以下两个链接是清除JMM中因果关系的最佳资源: > JMM Causality Test Cases 附:对于没有关于规范的这一部分的上下文的人来说,第17.4.8节的要点是弥合先前执行的一致执行与SC DRF(顺序一致,无数据竞争)执行之间的差距.这两者之间的差异就是所谓的凭空而言,即隐藏部分17.4.8不允许的,并且如果不加以控制则可能非常糟糕. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |