Sobes.tech
Middle+

Czym jest Deadlock i Livelock? Jaka jest różnica?

sobes.tech AI

Odpowiedź od AI

Martwa blokada (wzajemne blokowanie) — sytuacja, gdy dwa lub więcej procesów na zawsze blokuje się nawzajem, każdy oczekuje na zwolnienie zasobu zajętego przez inny proces. Na przykład proces A trzyma zasób 1 i czeka na zasób 2, a proces B trzyma zasób 2 i czeka na zasób 1.

Livelock (żywy blok) — sytuacja, gdy procesy nie blokują się, ale stale zmieniają swój stan w odpowiedzi na siebie nawzajem, nie posuwając się do przodu. Na przykład dwa procesy ciągle ustępują sobie zasoby, ale żaden nie może kontynuować pracy.

Różnica:

  • Deadlock — procesy czekają na siebie nawzajem i nie zmieniają stanu.
  • Livelock — procesy są aktywne i zmieniają stan, ale nie ma postępu.