Back to questions
Вкусно и точка
Junior — Middle
69
Как осуществляется синхронизация нескольких асинхронных задач с помощью DispatchGroup?
Companies where asked
Answer from AI
sobes.tech AI
DispatchGroup в iOS используется для синхронизации нескольких асинхронных задач. Он позволяет отслеживать, когда группа задач завершила выполнение.
Принцип работы:
- Создаётся объект DispatchGroup.
- Каждая асинхронная задача добавляется в группу с помощью
group.enter()перед началом иgroup.leave()после завершения. - Можно вызвать
group.notify(queue:), чтобы выполнить блок кода после того, как все задачи в группе завершатся.
Пример:
let group = DispatchGroup()
group.enter()
DispatchQueue.global().async {
// Асинхронная задача 1
print("Task 1 started")
// ... работа ...
print("Task 1 finished")
group.leave()
}
group.enter()
DispatchQueue.global().async {
// Асинхронная задача 2
print("Task 2 started")
// ... работа ...
print("Task 2 finished")
group.leave()
}
group.notify(queue: DispatchQueue.main) {
print("Все задачи завершены")
}
Таким образом, DispatchGroup помогает дождаться завершения нескольких параллельных операций и выполнить последующий код.