Junior — Middle
Môžete uviesť príklad situácie, keď dôjde k vzájomnému blokovaniu zdrojov v systéme?
sobes.tech AI
Odpoveď od AI
Zámena (deadlock) nastane, keď dva alebo viac procesov (alebo vlákien) čakajú jeden na druhého, pričom držia zdroje, ktoré sú potrebné iným na pokračovanie práce.
Príklad situácie:
- Vlákno A získa zdroj 1 a pokúša sa získať zdroj 2.
- Vlákno B získa zdroj 2 a pokúša sa získať zdroj 1.
Obe vlákna čakajú na uvoľnenie zdrojov od druhej, a žiadne nemôže pokračovať.
Na iOS sa to môže stať napríklad pri použití viacerých zámkov (locks) alebo front, keď nie je kontrolovaný poradie získavania zdrojov. Aby sa predišlo deadlockom, je dôležité dodržiavať poradie pri získavaní zdrojov alebo používať timeouty a iné mechanizmy synchronizácie.