平成21年度春期 ITパスポート 問82 解説
データDを更新する二つの処理A,Bが,①→③→②→④のタイミングで実行された場合,Dの値は幾らになるか。ここで,Dの初期値は2とする。

- ア6
- イ7
- ウ11
- エ21
答えを見る
正解 イ7
要点排他制御がないと更新が上書きされ消える(ロストアップデート)
解説
Dの値は7になります。
- ①処理AがD=2を読み込み、3倍して6を得る
- ③処理BがD=2を読み込み、5を加えて7を得る
- ②処理Aが6をDに書き込む(D=6)
- ④処理Bが7をDに書き込む(D=7)
処理Aの更新結果が処理Bに上書きされて失われます。これを防ぐのが排他制御(ロック)です。
- ア:6は②の時点の値なので誤り。
- ウ:11は順番に処理した場合(2×3+5)の値なので誤り。
- エ:21は(2+5)×3の値なので誤り。