1. ホーム
  2. multithreading

[解決済み] デッドロックとライブロックの違いは何ですか?

2022-03-15 04:23:12

質問

とは何が違うのか、どなたか(コードの)例を挙げて説明していただけませんか? デッドロック ライブロック ?

解決方法は?

引用元 http://en.wikipedia.org/wiki/Deadlock :

並行コンピューティングでは デッドロック は、アクションのグループの各メンバーが、他のメンバーがロックを解放するのを待っている状態です。

A ライブロック はデッドロックと似ています。 ただし ライブロックに関与しているプロセス 常に互いに変化している があり、何も進行しない。ライブロックは は、資源枯渇の特殊なケースです。 一般的な定義では 特定のプロセスが が進行している。

現実の例としては ライブロックは、2人の人間が出会ったときに発生します。 狭い廊下で、各自が工夫して をすることで、礼儀正しくすることができます。 を通過させるが、結局は 左右に揺れながら ので、何ら進展がない。 同じ方向への移動を繰り返す 同じタイミングで

ライブロックは 検出するアルゴリズムがあります。 デッドロックから回復する。複数の 1つのプロセスがアクションを起こすと、デッドロック 検出アルゴリズムが繰り返される可能性があります。 をトリガーする。これを避けるには 1つのプロセスだけが(選ばれた ランダムまたは優先順位によって)アクションを起こす。