Здравствуйте, Alexander Pazdnikov, Вы писали:
AP>то же не могу понять, зачем if и присваивания?
За барьерами. В самом общем случае С++ не гарантирует, что при оптимизации будет сохранено наблюдаемое поведение, если смотреть из другой нити. Например, компилятор может переупорядочить эти присваивания.
Мало того, их может переупорядочить не только оптимизатор компилятора, но и процессор тоже.
В общем то, что из другой нити уже видно, что b == 1 не гарантирует, что из неё же уже видно, что а == 3...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском