Junior — Middle
Lehetséges több DispatchGroup egyidejű használata egy szálon belül?
sobes.tech MI
Válasz az MI-től
Igen, egy szálon több DispatchGroup objektum is egyidejűleg használható. Minden DispatchGroup arra szolgál, hogy csoportosítson aszinkron feladatokat, és nyomon kövesse azok befejezését függetlenül más csoportoktól.
Ez akkor hasznos, amikor párhuzamosan több feladatsorozatot kell nyomon követni különböző befejezési logikával.
Példa több DispatchGroup használatára:
let group1 = DispatchGroup()
let group2 = DispatchGroup()
DispatchQueue.global().async(group: group1) {
// Aszinkron feladat 1
}
DispatchQueue.global().async(group: group2) {
// Aszinkron feladat 2
}
group1.notify(queue: .main) {
print("Az 1-es csoport feladatai befejeződtek")
}
group2.notify(queue: .main) {
print("A 2-es csoport feladatai befejeződtek")
}
Így több DispatchGroup létezhet és használható egyszerre ugyanazon a szálon konfliktus nélkül.