テクノロジ系 / データベース
デッドロック
デッドロックは、複数の処理が互いに相手の持つ資源解放を待ち、処理が進まなくなる状態です。
もう少し詳しく
データベースでは、トランザクションAが表Xをロックしたまま表Yを待ち、トランザクションBが表Yをロックしたまま表Xを待つとデッドロックが起こります。DBMSは片方をロールバックして解消することがあります。
試験での見方
A処理が顧客表を更新後に注文表を待ち、B処理が注文表を更新後に顧客表を待つと、双方が待ち続けて処理が止まります。
テクノロジ系 / データベース
デッドロックは、複数の処理が互いに相手の持つ資源解放を待ち、処理が進まなくなる状態です。
データベースでは、トランザクションAが表Xをロックしたまま表Yを待ち、トランザクションBが表Yをロックしたまま表Xを待つとデッドロックが起こります。DBMSは片方をロールバックして解消することがあります。
A処理が顧客表を更新後に注文表を待ち、B処理が注文表を更新後に顧客表を待つと、双方が待ち続けて処理が止まります。
デッドロックは「互いに待ち合って進まない」状態です。単なる処理遅延や排他制御そのものではありません。ロック順序の統一などが対策になります。