# 竞态条件（Race Condition）

### 缩写：无

### 简述

结果依赖于不可控的时序或交错，导致偶发错误的缺陷类别。共享可变状态无同步是主因；表象为「有时才失败」，难复现。

### 使用场景

多线程写共享、异步读写同一资源、check-then-act。

### 组成与要点

```text
线程1: 读 x == 0
线程2: 读 x == 0
线程1: 写 x = 1
线程2: 写 x = 1   // check-then-act 交错
```
### 实践与应用

• 缩小临界区
• 用原子操作或不可变
• 压力与交织测试

### 注意事项

• 误以为「概率低」可忽略
• 日志本身改变时序掩盖问题

### 关联术语

• 并发：竞态出现的背景
• 同步与锁：消除数据竞争的手段之一
• 原子性：不可分割的操作粒度
• 不可变：减少共享可变从而降低竞态
