Junior — Middle
Előfordulhatnak olyan esetek, amikor a fő sorban történő sync hívás használata nem vezet kölcsönös zároláshoz?
sobes.tech MI
Válasz az MI-től
A fő sorban lévő sync hívás általában kölcsönös zárolást eredményez, ha ugyanabból a fő sorból hívják, mivel várni fog a blokk befejezésére, amely nem kezdődhet el, amíg a jelenlegi be nem fejeződik. Azonban, ha a fő sorban lévő sync hívás egy másik szálból (nem a fő sorból) történik, akkor nem lesz kölcsönös zárolás, mivel a fő szál végrehajthatja a blokkot és felszabadíthatja a hívást.
Példa:
DispatchQueue.main.sync {
// Ez a kód zárolás nélkül fog végrehajtódni, ha a hívás háttérszálból származik
}