明確化の餌を必要とする並行プログラムがあります。最初のプログラムはアトミックと見なされますが、2番目のプログラムはそうではありません。
注:ここ//
でコメントを意味するのではなく、他のプロセスと同時に実行される別のプロセスであることを意味します。
これが最初です:
int x = 0, y = 0;
co
x = y + 1; // y = y + 1;
oc
上記のプログラムはアトミックと見なすことができますが、なぜそうなのかわかりません。しかし、この次のプログラムはそうではありません。
int x = 0, y = 0;
co
x = y + 1; // y = x + 1;
oc
アトミックアクションは、コンピューターシステムの状態を個別に変更するプログラミング命令であり、レジスターとの間で値をロードおよびストアすることは、典型的なアトミックアクションであることも知っています。では、上で何が起こっているのでしょうか?