本文へスキップ
← 用語集一覧へ

デッドロック

教科書で学ぶトランザクションの基礎と並行制御

定義デッドロック は、複数の処理がそれぞれ資源を確保したまま相手が持つ資源の解放を待ち合い、どの処理も先へ進めなくなる状態である。

解説例えば処理1が資源Xを、処理2が資源Yをロックした後、処理1がYを、処理2がXを求めると、互いに相手のロック解除を待つ輪ができる。この待ち合いはどちらかが譲らない限り解けないため、DBMS は一方の処理をロールバックしてロックを解放させるなどして解消する。

たとえ二人が箸を 1 本ずつ持ったまま、相手の 1 本が空くのを待って、どちらも食べ始められない様子に似ている。

記憶フックdead (動かない) と lock (鍵) の組み合わせ。互いに鍵を掛け合ったまま固まる、と字面で覚える。

関連する過去問(7 問)