デッドロック
処理Aは処理Bの完了を待ち、処理Bは処理Aの完了を待つような場合、デッドロックとなる。
主に排他制御をする場合にロック解放待ちが循環するとデッドロックになる。
デッドロックを検出する場合、ロックリソースが循環しているかどうかを判定する。
デッドロックを避けるには理想的には関連する全てのリソースを期待する順にあらかじめロックするのが正しいが、「データを読まなければ、どのデータをロックすればいいのか分からない」という問題があるため、実際には難しい。
関連
ロック