Junior
Mi az a Dispatch sor?
sobes.tech MI
Válasz az MI-től
A Dispatch sor egy könnyű objektum, amely feladatokat küld aszinkron vagy szinkron végrehajtásra a GCD-ben (Grand Central Dispatch).
A sorok típusai:
- Soros (Serial): Szigorúan sorrendben hajtják végre a feladatokat, egyet után egyet.
- Párhuzamos (Concurrent): Egyidejűleg hajtják végre a feladatokat (amennyiben a rendszer és a rendelkezésre álló magok engedik).
A sorok elérésének módjai:
- Fő sor (Main Queue): Egy sor, amely a alkalmazás fő szálához van kötve (UI).
let mainQueue = DispatchQueue.main - Globális párhuzamos sorok (Global Concurrent Queues): A rendszer különböző QoS prioritásokkal biztosítja.
let userInitiatedQueue = DispatchQueue.global(qos: .userInitiated) - Személyre szabott sorok: Lehetnek sorosak vagy párhuzamosak.
let customSerialQueue = DispatchQueue(label: "com.example.mySerialQueue") let customConcurrentQueue = DispatchQueue(label: "com.example.myConcurrentQueue", attributes: .concurrent)
Feladatok küldése:
async: Feladat hozzáadása a sorhoz aszinkron végrehajtásra, nem blokkolva a jelenlegi szálat.customSerialQueue.async { // Aszinkron feladat }sync: Feladat hozzáadása a sorhoz szinkron végrehajtásra, blokkolva a jelenlegi szálat a feladat befejezéséig.Használja acustomSerialQueue.sync { // Szinkron feladat }sync-et óvatosan, különösen a fő soron, hogy elkerülje a deadlockokat.
Alkalmazások:
- Háttérfeladatok végrehajtása anélkül, hogy blokkolná a UI-t.
- Hozzáférés kezelése a közös erőforrásokhoz (a soros sorok szinkronizációra szolgálnak).
- Számítások párhuzamosítása.