This question already has answers here:
Can num++ be atomic for 'int num'?

(13个回答)


9个月前关闭。




+=|=&=等“修改”运算符是原子的吗?

我知道++是原子的(如果您同时在两个不同的线程中执行x++;,则最终x最终会增加2,而不是关闭optitization的x=x+1。)

我想知道variable |= constant和类似对象是否是线程安全的,还是必须使用互斥锁来保护它们?

(...还是取决于CPU?在这种情况下,在ARM上如何?)

最佳答案

你错了。不能保证++是原子的,复合赋值运算符或任何C++操作都不能保证++是原子的。

08-16 07:17