Junior — Middle
Können Sie erklären, was die DispatchGroup-Struktur ist und wie sie verwendet wird, um die Ausführung mehrerer asynchroner Aufgaben zu synchronisieren?
sobes.tech KI
Antwort von AI
DispatchGroup ist ein Mechanismus in iOS (GCD), der es ermöglicht, mehrere asynchrone Aufgaben zu gruppieren und deren Abschluss zu überwachen. Es hilft, die Ausführung zu synchronisieren, zum Beispiel, um bestimmten Code auszuführen, nachdem alle Aufgaben in der Gruppe abgeschlossen sind.
Funktionsprinzip:
- Es wird eine DispatchGroup erstellt.
- Jede asynchrone Aufgabe wird mit
enter()vor Beginn undleave()nach Abschluss zur Gruppe hinzugefügt. - Man kann
notify(queue:)aufrufen, um eine Benachrichtigung zu erhalten, wenn alle Aufgaben in der Gruppe beendet sind.
Beispiel:
let group = DispatchGroup()
group.enter()
DispatchQueue.global().async {
// Asynchrone Aufgabe 1
print("Aufgabe 1 gestartet")
sleep(2)
print("Aufgabe 1 beendet")
group.leave()
}
group.enter()
DispatchQueue.global().async {
// Asynchrone Aufgabe 2
print("Aufgabe 2 gestartet")
sleep(1)
print("Aufgabe 2 beendet")
group.leave()
}
group.notify(queue: .main) {
print("Alle Aufgaben sind abgeschlossen")
}
Auf diese Weise hilft DispatchGroup, das Beenden mehrerer paralleler Operationen abzuwarten und anschließend Code auszuführen.