デッドロックとは、同時コンピューティングにおいて、2 つ以上のプロセスが互いのリソースの解放を待っているために無限の待機状態に陥り、システムが実行を続行できなくなることを意味します。競争。各参加者は他の参加者がリソースを解放するのを待っていますが、相互依存関係により、どの参加者も実行を続行できません。
# このチュートリアルのオペレーティング システム: Windows 10 システム、Dell G3 コンピューター。
デッドロックとは、同時コンピューティングにおいて、2 つ以上のプロセス (またはスレッド) が互いのリソースの解放を待機しているために無限待機状態に陥り、システムが実行を継続できなくなることを意味します。簡単に言うと、デッドロックとは、各参加者が他の参加者がリソースを解放するのを待っているものの、相互依存関係によりどの参加者も実行を続行できないリソース競合の状況です。
デッドロックには、通常、次の 4 つの必要な条件が含まれます。
相互排他: 少なくとも 1 つのリソースは、同時に 1 つのプロセス (またはスレッド) によってのみ使用できます。 占有されています。つまり、特定の時間に 1 つのプロセスによってのみ占有されることができます。
リクエストとホールドの条件 (ホールドと待機): プロセスは、割り当てられたリソースを待機している間も、取得したリソースを保持します。
プリエンプション条件なし (プリエンプションなし): プロセスに割り当てられたリソースを強制的に剥奪することはできず、プロセス自体によってのみ解放できます。
循環待機条件 (循環待機): プロセス チェーンがあり、各プロセスは次のプロセスが占有するリソースを待機し、閉ループ待機チェーンを形成します。
これら 4 つの条件が同時に満たされると、デッドロックが発生します。デッドロック状態では、デッドロックを打破するために介入が行われない限り、システムは続行できません。
デッドロックが発生すると、システム リソースの浪費、パフォーマンスの低下、さらにはシステムのクラッシュにつながる可能性があります。したがって、並行システムを設計する場合は、デッドロックを回避し、適切なリソース割り当てとスケジューリング アルゴリズムを通じてデッドロックを防止および処理する必要があります。
以上がデッドロックの概念とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。