Sobes.tech
Junior — Middle

Jaký je minimální počet vláken potřebných k vzniku vzájemného zablokování (Deadlock)?

sobes.tech AI

Odpověď od AI

Minimální počet vláken potřebných k vzniku vzájemného zablokování (Deadlock) je dva.

Vzájemné zablokování nastává, když dvě nebo více vláken současně drží zdroje a každé z nich čeká na uvolnění zdroje, který je držen jiným vláknem. Například:

  • Vlákno A zablokuje zdroj 1 a čeká na zdroj 2.
  • Vlákno B zablokuje zdroj 2 a čeká na zdroj 1.

Obě vlákna jsou navždy zablokována, protože každé čeká na uvolnění zdroje, který drží jiné vlákno.

Příklad v pseudokódu:

// Vlákno 1
lock(zdroj1)
wait()
lock(zdroj2)

// Vlákno 2
lock(zdroj2)
wait()
lock(zdroj1)

Pro deadlock stačí dvě vlákna a dva zdroje.