Sobes.tech
Middle+

Kas yra Deadlock ir Livelock? Kuo jie skiriasi?

sobes.tech AI

Atsakymas iš AI

Mirtina blokada (tarpusavio blokavimas) — situacija, kai du ar daugiau procesų amžinai blokuoja vienas kitą, kiekvienas laukia, kol bus atlaisvintas iš kito proceso užimtas išteklius. Pavyzdžiui, procesas A laiko išteklių 1 ir laukia išteklių 2, o procesas B laiko išteklių 2 ir laukia išteklių 1.

Gyvas blokas (livelock) — situacija, kai procesai nėra blokuojami, bet nuolat keičia savo būseną atsakydami vienas į kitą, nesistumdami į priekį. Pavyzdžiui, du procesai nuolat perduoda išteklius vienas kitam, bet nė vienas negali tęsti.

Skirtumas:

  • Deadlock — procesai laukia vienas kito ir nekeičia būsenos.
  • Livelock — procesai yra aktyvūs ir keičia būseną, bet nėra pažangos.