専有ロックとは?せんゆうロック
専有ロックとは、更新のためにデータへ掛ける排他的なロックで、共有ロックとも他の専有ロックとも両立しない。1つの資源に対して同時に保持できるトランザクションは1つだけで、他は解放まで待たされる。読み取りのための共有ロックが複数同時に成立するのと対になる概念で、書き込み時の一貫性を担保する。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
同じ行を2つの処理が同時に読んでから更新すると、後から書いた側が先の更新を上書きして消してしまう(ロストアップデート)。これを防ぐには「これから書く」と宣言して他を締め出す手段が要る。読むだけなら同時に何人いても壊れないので、読み用と書き用でロックの強さを分け、必要最小限の待ちで済ませる設計になっている。
具体例
在庫引当の処理が該当行に専有ロックを掛けている間、他の注文処理はその行を更新できず待たされる(隔離性水準や実装によっては、更新前の値を読むスナップショット読み取りが許される)。ロックの粒度を行から表へ上げると管理の負荷は下がるが、待ちは一気に増える。
試験での引っ掛け
共有ロックが掛かった資源へ専有ロックを要求すると待ちになるだけでなく、専有ロックが掛かった資源には共有ロックも掛けられない(片側だけ通ると誤解しやすい)。専有ロックを取ること自体が直列化可能性を保証するわけではなく、それを保証するのは獲得と解放の順序を定める2相ロッキングのほうである。ロックはデッドロックを防ぐ働きも持たない。
関連用語
出典・参考
公式シラバスの3 技術要素 > 4. トランザクション処理 > (1) 同時実行制御(排他制御)に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。