悲観ロック
pessimistic locking
他者が同じリソースに頻繁に変更を加えてくるかもしれない、と悲観視する
更新の競合は起き得ない
ダブルブッキングしたらマジで困るのでしっかりとロックする
⓪目的のデータにロックがかかっていないか確認する
②更新する
③書き込む
他の人がアクセスしていないことが保証されるので無条件で更新できる
④ロックを外す
短所
待ちが発生する
上記の①は任意のタイミングで行えるわけではない
取得をする前に、ロックがかかっていないか確認する必要がある
ロックがかかっている場合、待ち状態になる
処理中の処理が完了したら待っている者たちに通知を送る
ロックをした主体が、ロックを外すまでに落ちるとロックがかけっぱなしになる
セッションタイムアウトを設けるなどが必要