Sobes.tech
Junior — Middle

Mis juhtub niitidega, kasutades sync funktsiooni ja milline niit on protsessis lukustatud?

sobes.tech AI

Vastus AI-lt

Funktsioon sync mitme-õmbluse kontekstis (näiteks GCD iOS-is) täidab ülesande sünkronselt, see tähendab, et kutsuv niit on blokeeritud kuni ülesande lõpetamiseni. Kui kutsute sync-i peamisest niidist järjekorras, mis samuti töötab peamisel niidil, viib see deadlock-ini, kuna peamine niit ootab ülesande lõpetamist, mis ei saa alata, kuni peamine niit on vaba.

Seetõttu blokeerib sync kasutamisel kutsuv niit ja koodi täitmine peatub kuni ülesande lõpetamiseni.