Junior — Middle
81
AppDelegate әдісінде DispatchQueue.main.sync арқылы негізгі ағынға синхронды тапсырма жіберсеңіз, қандай мінез-құлық күтіледі?
AI-дан жауап
sobes.tech AI
Вызов DispatchQueue.main.sync внутри метода AppDelegate (который уже выполняется на главном потоке) приведёт к взаимной блокировке (deadlock). Это происходит потому, что:
DispatchQueue.main.syncпытается синхронно выполнить задачу на главном потоке.- Главный поток уже занят выполнением текущего метода
AppDelegateи ждёт завершения вызова. - Задача, переданная в
sync, не может начаться, так как главный поток занят.
В результате оба процесса ждут друг друга бесконечно, что приводит к зависанию приложения.
Чтобы избежать этого, нужно использовать DispatchQueue.main.async для асинхронного выполнения или выполнять синхронные вызовы на других потоках, но не на главном.