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.