Introduction
摘要
In computer science, as in real life, concurrency makes it much more difficult to reason about events. In a linear sequence, if \(E_1\) occurs before \(E_2\) , which occurs before \(E_3\) , and so on, we can reason about each event individually: \(E_i\) begins with the state of the world (or the program) after \(E_{i-1}\) , and produces some new state of the world for \(E_{i+1}\) . But if the sequence of events \(\{E_i\}\) is concurrent with some other sequence \(\{F_i\}\) , all bets are off. The state of the world prior to \(E_i\) can now depend not only on \(E_{i-1}\) and its predecessors, but also on some prefix of \(\{F_i\}\) .