Junior — Middle
Mi történik a szálakkal a sync függvény használata során, és melyik szál blokkolódik a folyamatban?
sobes.tech MI
Válasz az MI-től
A sync funkció a több szálú környezetben (például GCD az iOS-en) szinkron módon hajt végre egy feladatot, vagyis a hívó szál blokkolva van, amíg a feladat be nem fejeződik. Ha a sync-et a fő szálról hívjuk meg egy olyan soron, amely szintén a fő szálon fut, akkor ez deadlock-hoz vezet, mivel a fő szál várja a feladat befejezését, amely nem kezdődhet el, amíg a fő szál foglalt.
Ezért a sync használatakor a hívó szál blokkolva van, és a kód végrehajtása szünetel a feladat befejezéséig.