SC 的第二点约束 :store 必须被 所有(包括自身)执行流 同时看到 ,但是不要求写操作“立即”对其他处理器可见;允许写操作延迟一会儿被其他核观察到。
而 严格一致性模型,包括1. store 必须被 所有(包括自身)执行流 同时看到2. 看到的时间 必须是 某个处理器完成写操作的时间 // 即 一旦某个处理器完成写操作, 所有其他处理器立即能观察到它的结果。
特性 | 顺序一致性(SC) | 严格一致性(Strict Consistency) |
---|---|---|
是否按真实时间顺序执行 | ❌ 不是,允许只要逻辑上可解释的全局顺序就行 | ✅ 是,必须和真实时间顺序完全一致 |
写是否要立刻对所有线程可见 | ❌ 不需要,可以晚一点 | ✅ 需要立即对所有线程可见(同步广播) |
是否可构造交错序列解释执行结果 | ✅ 是的,只要能构造即可 | ✅ 同时必须与真实时间顺序一致 |
是否能有缓存写延迟、store buffer | ✅ 可以 | ❌ 不行,所有写立即全系统同步 |
现代 CPU 是否支持 | ❌ 需要 barrier/fence 才能模拟 | ❌ 几乎无现实实现(代价太高) |