情処用語辞典

デッドロック

説明

複数の処理がお互いに他の処理が占有している資源の解放を待つことで、どちらの処理も停止してしまうことです。

データ1とデータ2を使用する処理Aと処理Bがあり、処理Aはデータ1→データ2の順、処理Bはデータ2→データ1の順でロックをしながら処理を行う場合、(1)処理Aがデータ1をロック、(2)処理Bがデータ2をロック、という順番で処理を実行すると、処理Aはデータ2をロックできない(処理Bが先にロックしている)、処理Bはデータ1をロックできない(処理Aが先にロックしている)という状態になり、お互いが相手のロック解除を待ち続けるということになります。