Middle
Milyen típusú sorok léteznek a Grand Central Dispatch (GCD) rendszerében?
sobes.tech MI
Válasz az MI-től
A GCD-ben négy fő típusú sor várakozások használatosak:
-
Fő sor (Main Queue):
- Sorozatos várakozás.
- Az alkalmazás fő szálán végrehajtott feladatokhoz használják (UI-frissítések, eseménykezelés).
- Mindig van egy alkalmazásonként.
-
Globális párhuzamos sorok (Global Concurrent Queues):
- Párhuzamos várakozások.
- A rendszer által biztosított.
- Különböző szolgáltatási minőségi szintekkel (Quality of Service - QoS).
- Több feladatot tudnak egyszerre végrehajtani.
-
Egyéni sorozatos várakozások (Custom Serial Queues):
- A fejlesztő által létrehozott sorozatos várakozások.
- Sorban hajtják végre a feladatokat, egymás után.
- Ideálisak erőforrásokhoz való hozzáférés kezelésére (szinkronizáció).
-
Egyéni párhuzamos várakozások (Custom Concurrent Queues):
- A fejlesztő által létrehozott párhuzamos várakozások.
- Több feladatot tudnak egyszerre végrehajtani.
- Jobb kontrollt biztosítanak a feladatok végrehajtása felett, mint a globális párhuzamos várakozások.
Példák várakozások létrehozására:
// Fő várakozás
let mainQueue = DispatchQueue.main
// Egyik globális párhuzamos várakozás (magas prioritással)
let globalHighPriorityQueue = DispatchQueue.global(qos: .userInitiated)
// Egyéni sorozatos várakozás
let customSerialQueue = DispatchQueue(label: "com.myapp.serialqueue")
// Egyéni párhuzamos várakozás
let customConcurrentQueue = DispatchQueue(label: "com.myapp.concurrentqueue", attributes: .concurrent)
QoS prioritások a globális várakozásokhoz:
| QoS prioritás | Leírás |
|---|---|
.userInteractive |
Felhasználói felülettel kapcsolatos feladatok (kattintásokra adott válasz). |
.userInitiated |
A felhasználó által indított feladatok (tartalom betöltése kérésre). |
.default |
Alapértelmezett prioritás, a .userInitiated és a .utility között. |
.utility |
Hosszú háttérfeladatok (fájlok letöltése). |
.background |
Alacsony prioritású feladatok, a felhasználótól függetlenül. |
.unspecified |
A rendszer határozza meg a prioritást. |