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

  1. 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.
  2. 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.
  3. 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ó).
  4. 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.