Sobes.tech
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.