当且仅当所有顺序一致的执行没有数据争用时,程序才能正确同步.
它只给我们定义"顺序一致",它没有给我们定义"顺序一致的执行".只有在知道什么是"顺序一致的执行"之后,我们才可以进一步讨论该主题.
什么是"顺序一致的执行"以及什么是"顺序一致的执行没有数据竞争"?
JLS有两个结论:
data-race-free => sequentially consistentcorrectly synchronized => sequentially consistent如果C1的反面是真的,那么我们可以得出结论:
correctly synchronized => data-race-free但不幸的是,JLS中没有这样的陈述,所以我得出了第四个结论:
但我对这种方法并不满意,并且想要证明这个结论是正确的(或错误的),即使是以非正式的方式或以样本的方式.
首先,我认为显示包含数据竞争的多线程程序的顺序一致执行的代码段有助于理解和解决此问题.
经过认真考虑,我仍然找不到合适的样品.那么请你给我这样的代码段吗?