Я не понимаю этого. Допустим, у меня есть значение 10 по адресу памяти x.
Если у нас есть
thread1:
Read(x)
x+=5
Write(x)
а потом:
thread2:
Read(x)
x+=2
Write(x)
Я не понимаю, что является допустимым последовательным или строгим соответствием.
Например, здесь, является ли это действительным строго последовательным результатом операций?
T1: R(x), found 10 W(x), x is now 15
T2 R(x),found 10 W(x), x is now 12
Это кажется таким бесполезным. x имеет неправильное значение... оно не было аддитивным. При этом доступы, выполняемые каждым процессором, сохранялись в порядке, и один и тот же порядок был виден всем. Это критерий строгой согласованности, верно? Неважно, что результат был раздавлен.
А для последовательной последовательности... Я не вижу разницы между ней и строгой.