本文へスキップ
BecomeCoder
Wiki一覧ブログコース一覧

デッドロック

最終更新: 2026年8月8日

デッドロック(deadlock)は、複数の処理が 互いに相手の持っている資源の解放を待ち続け、どちらも先へ進めなくなる 状態です。

たとえば会議室と資料を、2人がそれぞれ半分ずつ確保してしまった状況を考えます。

処理A 会議室を確保ずみ → 資料を待つ 処理B 資料を確保ずみ → 会議室を待つ 資料が欲しい 会議室が欲しい

AはBの持つ資料を、BはAの持つ会議室を待っていて、どちらも譲らない——この膠着がデッドロックです。トランザクション が同時に走る データベース で起きやすい問題です。

対策には、いくつかの考え方があります。

多くのデータベースは自動でデッドロックを検出し、片方をロールバックして解消します。設計段階で「同時実行」を意識しておくことが、根本的な予防になります。

← Wiki一覧に戻る