Я пытаюсь понять свойство по крайней мере один раз, которое гласит:
Атрибут оператора присваивания x = e, в котором либо (1) x не читается другим процессом, а e содержит в большая часть одной ссылки на переменную, измененную другим процессом, или (2) x не записана другим процессом и e не содержит ссылок на переменные, измененные другими процессами.
int x = 0, y = 0;
co x = x+1; // y= y=1; oc;
удовлетворяет свойству, поскольку x не является прочитанный вторым процессом и не имеющий критической секции
int x = 1, y = 1;
co <x = x + y;>
// y = 0;
// x = x - y;
oc
Я не понимаю, как эта программа удовлетворяет этому свойству. Первое утверждение является оператором atomi c, поэтому оно в любом случае недопустимо, но y = 0 повлияет на результат третьего утверждения x, поэтому я не понимаю, как это удовлетворяет свойству?