Junior — Middle
Is het mogelijk om bij het gebruik van GCD synchroon te wachten op de uitvoering van meerdere taken en daarna verder te gaan na hun voltooiing?
sobes.tech AI
Antwoord van AI
Да, с помощью GCD можно синхронно ожидать выполнения нескольких задач и продолжить выполнение после их завершения. Для этого обычно используют DispatchGroup. Вы добавляете задачи в группу, запускаете их асинхронно, а затем вызываете метод wait() у группы, который блокирует текущий поток до завершения всех задач в группе.
Пример на Swift:
let group = DispatchGroup()
group.enter()
DispatchQueue.global().async {
// Асинхронная задача 1
print("Task 1 started")
sleep(2)
print("Task 1 finished")
group.leave()
}
group.enter()
DispatchQueue.global().async {
// Асинхронная задача 2
print("Task 2 started")
sleep(1)
print("Task 2 finished")
group.leave()
}
group.wait() // Ожидаем завершения обеих задач
print("Все задачи завершены")
Таким образом, можно синхронно дождаться выполнения нескольких асинхронных задач.