这段代码能正常工作吗? atomic_int 与 _Atomic(int) 有什么区别
struct a {
int xyz;
volatile _Atomic(unsigned int) status;
int eee;
};
threadOne(void *)
{
a->status |= QW;
}
threadTwo(void *)
{
a->status |= ER;
}
最佳答案
是的,它将正常工作,即 |=
操作将是原子的
就事物的定义位置而言(这超出了您的要求):
关于c - 如果我创建一个原子变量,线程之间对该变量的所有操作都是原子的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26109053/