Skip to content

Happens-before 关系

Happens-before · Causal order

由进程内顺序与消息传递生成的事件因果偏序。

形式陈述

事件关系 取满足以下条件的最小传递关系:同一进程中先发生的事件先于后发生事件;消息发送先于对应接收;若 abbc,则 ac。若两事件互不先于对方,则称并发。

直觉

在没有全局时钟的系统中,只记录能够由程序顺序或通信证明的因果先后;其余事件没有客观统一次序。

例子与边界

发送消息必在接收前发生。两个未通信进程各自的本地事件可能并发。物理时间先后不一定能从 happens-before 推出,反之逻辑时钟值也不等于真实时间。

蓝色消息箭头与进程内顺序生成因果链;b 与 e 不可比较,因此并发。

推论与应用

Lamport 时钟保持因果顺序,向量时钟还能检测并发;关系用于一致性模型、竞态检测和分布式快照。

参考资料
  • Leslie Lamport, “Time, Clocks, and the Ordering of Events in a Distributed System,” 1978.
  • Nancy A. Lynch, Distributed Algorithms, §6.2.