✏️ AI 术语图鉴

竞态 · Race Condition

英文:race condition按单词直读

后端与数据库难度:硬核 ★★★

🗣️一句话大白话

两个人同时读写同一份数据,先来后到没定好,结果取决于「谁快」——库存只剩 1 件,两个人同时下单,可能都成功,卖超了。

🎬真实场景

抢购场景:库存检查「还有 1 件」→ 扣库存。两个请求几乎同时检查,都看到 1,都扣——库存变 -1。解法:让检查和扣减变成原子操作,或加锁排队。

📮你可以这样说

「下单扣库存要防竞态:用数据库原子操作(UPDATE stock = stock - 1 WHERE stock > 0)判断是否成功,不要先查再扣。」

⚠️边界与常见误解

  • 单用户测试永远测不出竞态,要「两个人同时点」才能复现
  • 「先查再改」是竞态的典型形状——代码评审重点盯它
  • 锁、原子操作、事务是三种解药,让 AI 说明用了哪种

🔗相关术语