12 из 90 вопросов — случайная выборка · Ответьте на все и узнайте свой результат
Что происходит, когда ты вызываешь queue.sync { } из задачи, которая уже выполняется на том же серийном DispatchQueue?
queue.sync { }
DispatchQueue
Внутренний блок sync выполняется немедленно в новом потоке, чтобы избежать блокировки
sync
Происходит deadlock, потому что очередь ждёт, когда она сама станет доступной
Внутренний блок sync молча пропускается и выполнение продолжается
GCD автоматически повышает dispatch до async, чтобы предотвратить блокировку
async