Являются ли операторы "изменить" такими, как +=
, |=
, &=
и т.д. atom?
Я знаю, что ++
является атомарным (если вы выполняете x++;
в двух разных потоках одновременно), вы всегда окажетесь x
увеличено на 2, а не x=x+1
, при выключенной оптимизации).
Интересно, существует ли variable |= constant
, а подобные - поточно-безопасные или мне нужно их защищать с помощью мьютекса?
(... или он зависит от процессора? В этом случае, как это делается на ARM?)