排他制御
ダメなアルゴリズム
1.ID置き場をreadして他人が使用中か調べる 2.他人のIDが書いてなかったら自分のIDをwriteして権限取得
失敗例
1.AがID置き場をreadする→しめしめ、誰も書いてないぞ
2.BがID置き場をreadする→しめしめ、誰も書いてないぞ
3.Aが自分のIDをwriteする→やった、これで俺のターン!
4.Bが自分のIDをwriteする→やった、これで俺のターン!
改良版アルゴリズム
1.ID置き場をreadして他人が使用中か調べる 2.他人のIDが書いてなかったら自分のIDをwriteする 3.念のため1.と2.をするのに必要な時間だけ待つ 4.ID置き場をreadしてみてそれでも自分のIDだったら権限取得
成功例
1.AがID置き場をreadする→しめしめ、誰も書いてないぞ
2.BがID置き場をreadする→しめしめ、誰も書いてないぞ
3.Aが自分のIDをwriteする→やった!でもまだ安心出来ないぞ
4.Aが念のため待つ
5.Bが自分のIDをwriteする→やった!でもまだ安心出来ないぞ
6.Bが念のため待つ
7.AがID置き場をreadする→あー、自分のIDじゃなかった。残念。
8.BがID置き場をreadする→やった、これで俺のターン!