字节操作在 C++11 中是原子的?

Operations on byte are atomic in C++11?

那么对 char 的操作是原子的吗? 因此,在线程 A 中我读取 char T,在线程 B 中我写入相同的 char T,这些标准操作是原子的吗?

char a;

#thread A
{ 
if(a & 0x01)
  ...

}

#thread B
{ 
 a =0x01;
  ...

}

# ATOMIC?

谢谢!

根据 C++ 标准,当从多个线程使用同一个变量时,可能会发生并发访问,并且如果至少有一个访问是写入,则这些访问冲突

冲突的潜在并发访问构成了数据竞争,这是未定义的行为,除非所有此类访问都是原子的。 volatile救不了你

基本类型在 C++ 标准中所使用的含义内不是原子。您可以使用 std::atomic 模板创建原子对象。