我们 (在完全不理解算法的前提下) 证明了 Sequential 内存模型下 Peterson's Protocol 的 Safety。它能够实现互斥。
并发编程比大家想象得困难
可以帮助我们
电脑为什么叫 “电脑”
回忆:每个班上都有一个笔记和草稿纸都工工整整的 Ta
回到我们的假设 (体现在模型)
“实现正确的 Peterson 算法” 是合理需求,它一定能实现
__sync_synchronize()
函数mfence
; ARM: dmb ish
; RISC-V: fence rw, rw
Peterson 算法:C 代码实现演示
编译器到底做了什么?