デッドロック
意味・解説
2つ以上の処理が、互いに相手がロックしているデータの解放を待ち続けてしまい、どちらも動けなくなる状態。行き詰まり。
排他制御の副作用として発生する。Aが資源1をロックし資源2を待つ、同時にBが資源2をロックし資源1を待つ、という「環状待ち」が原因。これが発生すると、システム側が一方の処理を強制終了(ロールバック)させて解消する必要がある。
くわしく
データの「お見合い(板挟み)」によるフリーズです。
1.発生条件:
処理Aがデータ1をロックし、次にデータ2を欲しがる。同時に、処理Bがデータ2をロックし、次にデータ1を欲しがる。この時、お互いが「相手が鍵を返してくれるまで待つ」状態になり、永久に動けなくなります。ポイントは、プログラムの書き方次第で頻発し、システム全体を停止させてしまう非常に厄介なトラブルだからです。
例文
データの更新順序がプログラム間で統一されていなかったため、大量の注文処理が重なった際にデッドロックが発生した。
過去問での出題状況
直近29回分の過去問(全2,900問)を解析した結果、3回登場しています(出題された年度: 3年度)。
出典: 本サイト独自集計(問題文および全選択肢テキストからの用語出現頻度・2026年6月時点)
同義語: 共倒れ / 膠着状態, 行き詰まり, 共倒れ
分類: 同時実行制御の課題