1.10 / 6:
Все модификации конкретного атомного объекта M происходят в определенном общем порядке, называемом модификацией
орден М.
Неатомарные объекты также имеют одинаковый порядок модификации во всех потоках? Меня интересуют правильно синхронизированные случаи (в отсутствии гонок данных и т. Д.).
Вы должны иметь синхронизацию между всеми участвующими потоками.
Если у вас есть один (или более) поток (-ы), обновляющий неатомарное значение (с любым количеством синхронизирующих операций в их группе) и другой поток, считывающий это значение (без синхронизации с какими-либо потоками средства обновления), вам даже не гарантируется, что Вы прочитаете одно из значений, сохраненных другими потоками.
Вообще, если один поток обновления неатомарная переменная и другое доступ (обновляет или читает) это без надлежащей синхронизации между этими двумя операциями, у вас есть гонка данных. Гонка данных вызывает неопределенное поведение.
Если вы «правильно синхронизируете» доступы к неатомарным переменным, у вас будет случается, перед тем связь между любой модификацией и любым доступом в другом (или, конечно, том же) потоке. Это включает в себя отношения между любыми двумя модификациями.
Это происходит до того, как отношения действительны во всех потоках и вызывают общий порядок между модификациями. Итак, да: правильно синхронизированное использование дает вам полный порядок изменения (который даже одинаков для всех переменных, синхронизированных с использованием одинаковых операций синхронизации).
Других решений пока нет …