DispatchGroup — это механизм GCD (Grand Central Dispatch), позволяющий отслеживать завершение группы асинхронных задач и выполнять действие после их выполнения. Удобен, когда необходимо скоординировать работу нескольких диспетчерских очередей или потоков.
Основные методы:
enter(): Сообщает группе, что задача началась. Увеличивает внутренний счетчик группы.leave(): Сообщает группе, что задача завершилась. Уменьшает счетчик.wait(): Блокирует текущий поток до тех пор, пока счетчик группы не станет равным нулю или не истечет таймаут.notify(queue:execute:): Регистрирует блок кода, который будет выполнен асинхронно на указанной очереди, когда счетчик группы станет равным нулю.Пример использования notify:
swift
Альтернативный пример с ручным enter() и leave():
swift