デッドロックエラーは、必要なリソースが別のプロセスまたはプログラムによって使用されているために、プロセスまたはプログラムを開始できない状況です。
つまり、それぞれのリソースをすでに使用しているプロセスまたはプログラムが、他のプロセスがそれらにアクセスするのを妨げています。 この問題を解決する唯一の解決策は、リソースを解放することです。
デッドロックエラーは、複数のプロセスが同じリソースへのアクセスを必要とするオペレーティングシステムに固有です。 2つ以上のプロセスが、同じリソース上で競合する場合があります。
プロセスが適切に実行する必要のあるリソースにアクセスできない場合、プロセスは自動的に待機状態になります。 リソースがブロックされたままの場合、プロセスは起動しません。 ただし、待機状態の期間は制限されることがよくあります。 システムリソースが使用できないままの場合、待機は終了し、開始に失敗したプロセスはエラーメッセージをスローします。
簡単な例え
1車線の道路で2台の車が互いに向かってくる様子を想像してみてください。 車は、お互いの前に来ると移動できません。 プロセスが別のプログラムによって取得されたリソースを待機している場合にも、同様のことが起こります。
Windows10でのデッドロックエラー
Windows10でのデッドロックエラーの簡単な例を次に示します。
- 別のプログラムがこのファイルを使用しています。
- ドキュメントは別のアプリケーションで使用されているため、アクセスできません。
- ファイルは別のプログラム/プロセス/ユーザーによって使用されています。
すでにこれらのエラーに精通している方もいらっしゃるかもしれません。 また、Technipagesでそれらのいくつかを取り上げました。
- このデバイスが別のデバイスの起動を待機しているのを修正
- Windows 10:別のプログラムが現在このファイルを使用しています
ご覧のとおり、これらのエラーの例はすべて、別のプログラムがファイル(使用する場合はリソース)を使用していることを示しています。 その結果、2番目のプログラムがそのファイルへのアクセスを要求すると、許可は拒否されます。
⇒ご存知ですか?
Windows10は ドライバー検証ツール デッドロックを検出します。 Microsoftは、という名前のユーティリティも提供しています アプリケーションベリファイア
これは、Windowsソフトウェア開発キットに含まれています。 このツールは、実行中にプログラムを分析して、デッドロックを引き起こす可能性のある潜在的な設計または実行の欠陥を検出します。デッドロックエラーを防ぐ方法
デッドロックエラーを回避する最も簡単な方法の2つは、次のとおりです。
- 同じリソースタイプの複数のインスタンスを追加します。
- プロセスが他のプロセスとリソースを共有できるようにします。
ただし、これらのソリューションは、特定のコンピューター構成で常に実行可能であるとは限りません。