Junior — Middle
Kas saaksite anda näite olukorrast, kus süsteemis toimub ressursside vastastikune lukustamine?
sobes.tech AI
Vastus AI-lt
Deadlock (surnud) tekib, kui kaks või enam protsessi (või niiti) ootavad üksteist, hoides ressursse, mida teised vajavad töö jätkamiseks.
Näide olukorrast:
- Niit A omandab ressursi 1 ja püüab saada ressursi 2.
- Niit B omandab ressursi 2 ja püüab saada ressursi 1.
Mõlemad niidid ootavad, kuni ressursid vabastatakse teise poolt, ning ükski ei saa jätkata.
iOS-is võib see juhtuda näiteks siis, kui kasutatakse mitmeid lukke (locks) või järjekordi, kui ressursside omandamise järjekord ei ole kontrollitud. Deadlockide vältimiseks on oluline järgida ressursside omandamise järjekorda või kasutada timeout'e ja muid sünkroniseerimismehhanisme.