@sagaxu 1. 我不知道你说的“典型的 data race ”是什么。 https://blog.regehr.org/archives/490 明确地给出了 data race 和 race condition 的定义和它们之前的关系 2. 我上面说 “ data race 是 race condition 的子集”,这是错的,这两个东西互相不是对方的子集 3. 按照我发的链接里的定义,不同线程上的 2 个 open 和 close 之间构不成 data race,因为只有 open 一个地方用到了内存地址