在JLS, §17.4.5. Happens-before Order中,它表示
当且仅当所有顺序一致的执行都没有数据争用时,程序才能正确同步。
根据Does a correctly synchronized program still allow data race?(Part I)中的讨论,我们得出以下结论:
程序可以正确同步并具有数据竞争。
两个结论的结合意味着它必须存在这样一个例子:
程序的所有顺序一致的执行都是数据竞争的,但是这样的程序的正常执行(执行顺序一致的执行除外)包含数据竞争。
经过深思熟虑后,我仍然找不到这样的代码示例。那你呢?