Sobes.tech
Junior — Middle

Můžete uvést příklad situace, kdy dochází k vzájemnému blokování zdrojů v systému?

sobes.tech AI

Odpověď od AI

Vznikne zablokování (deadlock), když dva nebo více procesů (nebo vláken) čekají na sebe navzájem, zatímco drží zdroje, které jsou potřebné pro pokračování práce.

Příklad situace:

  • Vlákno A získá zdroj 1 a pokouší se získat zdroj 2.
  • Vlákno B získá zdroj 2 a pokouší se získat zdroj 1.

Obě vlákna čekají na uvolnění zdrojů druhým, a žádné nemůže pokračovat.

Na iOS se to může stát například při použití několika zámků (locks) nebo front, když není kontrolován pořadí získávání zdrojů. Aby se předešlo deadlockům, je důležité dodržovat pořadí při získávání zdrojů nebo používat časové limity a jiné mechanismy synchronizace.