**竞态条件是一种 bug:结果取决于并发操作访问共享状态时不可预测的时序。**经典情形是一个非原子的读-改-写(read-modify-write)。
它是如何工作的
counter += 1 看起来是原子的,实际上却是三步:读取、加一、写回。两个线程可能交错执行,导致一次更新丢失。
text
counter = 0
线程 A: 读 0 ─────────── 写 1
线程 B: 读 0 ─ 写 1
结果: 1 (本应为 2 —— 丢失了一次自增)
示例
python
counter =
():
counter
_ ():
counter +=
