Вопрос проверяет знание инструментов GCD для синхрониции нескольких задач и ограничения параллелизма.
Короткий ответ
DispatchGroup позволяет группировать несколько асинхронных задач и получать уведомление, когда все они завершатся. DispatchSemaphore контролирует доступ к ресурсам, уменьшая либо увеличивая счётчик и блокируя поток при нулевом значении до сигнала.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.