・排他制御をしない場合
今、銀行口座Xに10万円入っていました。
1.Aさんは口座Xの残高を確認します。金額は10万円です。
2.同時期にBさんも口座Xの残高を確認します。金額は10万円です。
3.Aさんはそのまま口座Xに10万円入金しました。口座Xは20万円になりました。
4.Bさんもそのまま口座Xに20万円入金しました。口座Xは30万円になりました。
これは排他制御をしないために口座Xの金額が30万円になってしまいました。
・排他制御をした場合
今、銀行口座Xに10万円入っていました。
1.Aさんは口座Xの残高を確認します。10万円です。
2.同時期にBさんも口座Xの残高を確認しようとしますが、Aさんが使っているので待たされます。
3.Aさんはそのまま口座Xに10万円入金しました。口座Xは20万円になりました。
4.BさんはAさんの処理が終わったので、口座Xの残高を確認します。20万円です。
5.Bさんもそのまま口座Xに20万円入金しました。口座Xは40万円になりました。
これが正しい処理ですね。
miura