下面这种关于样本结果的问题被称为 litmus test 。它只有两个答案:可能还是不可能?为我们提供了一种区分内存一致性模型的清晰方法:如果一个模型支持特定的执行,而另一个不支持,那么这两个模型显然不同。

litmus test 假设所有变量都初始为 0rN 表示非共享变量,而是一个线程本地寄存器。

Litmus Test: Message Passing
Can this program see r1 = 1, r2 = 0?
// Thread 1           // Thread 2
x = 1                 r1 = y
y = 1                 r2 = x

然而不幸的是,一个特定的模型对一个特定的 litmus test 给出的答案往往令人惊讶。