Data Race
数据竞争是多线程同时读写同一位置且至少一个为写、无同步,导致未定义行为。
用途
理解数据竞争导致的未定义行为与防御,是并发程序正确性核心。
机制
线程 A 写 x 同时线程 B 读/写 x 无同步,结果不确定(撕裂值、部分写)。C/C++ 数据竞争为未定义行为。防御:互斥锁、原子操作、内存屏障。
用例
- 并发正确性分析
- 线程安全审计
- 数据竞争检测
数据竞争是多线程同时读写同一位置且至少一个为写、无同步,导致未定义行为。
理解数据竞争导致的未定义行为与防御,是并发程序正确性核心。
线程 A 写 x 同时线程 B 读/写 x 无同步,结果不确定(撕裂值、部分写)。C/C++ 数据竞争为未定义行为。防御:互斥锁、原子操作、内存屏障。