読み方 : はいたロック

排他ロック【exclusive lock】占有ロック/専有ロック

概要

排他ロックとはデータベースシステムなどで記憶領域への同時アクセスを制限するロック機構の一つで、処理の実行中に他の主体によるアクセスを完全に遮断し、対象を独占的に占有するもの。
排他ロックのイメージ画像

複数のプログラムが並行して実行される環境では、同じデータを同時に読み書きすると内容が破損したり処理に矛盾が生じたりする。これを防ぐため、先にアクセスした処理が完了するまで他の処理のアクセスを一時的に禁じる仕組みを「ロック」(lock)という。排他ロックロックはその方式の一つで、対象データを安全に更新したい際に用いられる。

排他ロックと対になる概念が「共有ロック」(shared lock)である。共有ロックは他の処理による参照(読み込み)を許可しつつ、書き込みや排他ロックの取得を禁じる。排他ロックが取得されている間は共有ロックも取得できず、共有ロックが存在する間は排他ロックを取得できない。ある時点で排他ロックを取得できる処理は常に一つだけである。

データベース管理システムDBMS)では、トランザクション処理の一環として排他ロックが自動的に管理されることが多い。UPDATE文DELETE文などの変更操作を実行すると、DBMSが対象の行や表に暗黙的にロックをかける。ロックの粒度は行単位やページ単位、テーブル単位など実装によって異なり、粒度が細かいほど並行実行性は高まるが、オーバーヘッドも大きくなる。

ロックの保持時間が長くなると他の処理の待ち時間が増え、スループットが低下する。また、複数の処理が互いに相手のロック解放を待ち続ける「デッドロック」(deadlock)が発生する場合もある。例えば、一方の処理がデータAをロックした後にデータBを要求し、もう一方が逆の順序でロックを取得しようとすると、双方が停止状態に陥る。多くのDBMSではデッドロックを検出すると、いずれかの処理を強制的に中断して状況を解消する仕組みが組み込まれている。

(2026.5.28更新)
 

他の辞典等による「排他ロック」の解説 (外部サイト)

資格試験などの「排他ロック」の出題履歴

▼ 基本情報技術者試験
令7修12/令3修6/平31修1/平26秋】 トランザクションの同時実行制御に用いられるロックの動作に関する記述のうち,適切なものはどれか。
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。