This question already has answers here:
Can num++ be atomic for 'int num'?
(13个回答)
9个月前关闭。
像
我知道
我想知道
(...还是取决于CPU?在这种情况下,在ARM上如何?)
(13个回答)
9个月前关闭。
像
+=
,|=
,&=
等“修改”运算符是原子的吗?我知道
++
是原子的(如果您同时在两个不同的线程中执行x++;
,则最终x
最终会增加2,而不是关闭optitization的x=x+1
。)我想知道
variable |= constant
和类似对象是否是线程安全的,还是必须使用互斥锁来保护它们?(...还是取决于CPU?在这种情况下,在ARM上如何?)
最佳答案
你错了。不能保证++是原子的,复合赋值运算符或任何C++操作都不能保证++是原子的。
08-16 07:17