Junior — Middle
Какво се случва с нишките при използване на функцията sync и коя нишка се блокира в процеса?
sobes.tech AI
Отговор от AI
Функцията sync в контекста на многопоточността (например, в GCD на iOS) изпълнява задачата синхронно, тоест извикващият поток се блокира, докато задачата не приключи. Ако извикате sync от главния поток върху опашка, която също се изпълнява в главния поток, това ще доведе до deadlock, тъй като главният поток ще чака завършването на задачата, която не може да започне, докато главният поток не освободи.
По този начин, при използване на sync, извикващият поток се блокира, а изпълнението на кода се спира до завършването на задачата.