Sobes.tech
Middle

Grand Central Dispatch (GCD) ичинде кайсы түрдөгү кезектер бар?

sobes.tech AI

AIден жооп

GCD колдонууда төрт негизги кезек түрлөрү колдонулат:

  1. Негизги кезек (Main Queue):

    • Сериялык кезек.
    • Колдонмонун негизги агымында тапшырмаларды аткаруу үчүн колдонулат (UI жаңыртуулары, окуяларды иштетүү).
    • Ар дайым колдонмо үчүн бирөө.
  2. Глобалдык атаандаштык кезектери (Global Concurrent Queues):

    • Атаандаштык кезектер.
    • Жүйө тарабынан камсыз кылынат.
    • Кызмат көрсөтүү сапатынын (Quality of Service - QoS) ар кандай деңгээлдери бар.
    • Бир нече тапшырмаларды бир убакта аткара алат.
  3. Колдонуучу аныкталган сериялык кезектер (Custom Serial Queues):

    • Колдонуучу тарабынан түзүлгөн сериялык кезектер.
    • Тапшырмаларды кезек-кезеги менен аткарат.
    • Ресурстарга кирүүнү башкаруу үчүн идеалдуу (синхрондоо).
  4. Колдонуучу аныкталган атаандаштык кезектери (Custom Concurrent Queues):

    • Колдонуучу тарабынан түзүлгөн атаандаштык кезектер.
    • Бир нече тапшырмаларды бир убакта аткара алат.
    • Атаандаштык кезектерге салыштырмалуу тапшырмаларды аткарууну жакшы контролдоого мүмкүндүк берет.

Кезектерди түзүү мисалдары:

// Негизги кезек
let mainQueue = DispatchQueue.main

// Бирөөсү глобалдык атаандаштык кезектери (жогорку артыкчылык)
let globalHighPriorityQueue = DispatchQueue.global(qos: .userInitiated)

// Колдонуучу аныкталган сериялык кезек
let customSerialQueue = DispatchQueue(label: "com.myapp.serialqueue")

// Колдонуучу аныкталган атаандаштык кезек
let customConcurrentQueue = DispatchQueue(label: "com.myapp.concurrentqueue", attributes: .concurrent)

QoS артыкчылыктары глобалдык кезектер үчүн:

QoS артыкчылык Түшүндүрмө
.userInteractive Колдонуучу интерфейси менен байланышкан тапшырмалар (басымдарга жооп берүү).
.userInitiated Колдонуучу тарабынан башталган тапшырмалар (мазмунду сурау боюнча жүктөө).
.default Төменкү артыкчылык, .userInitiated жана .utility арасында:
.utility Узакка созулган фондук тапшырмалар (файлдарды жүктөө).
.background Төмен артыкчылыктагы тапшырмалар, колдонуучуга көз каранды эмес.
.unspecified Жүйө артыкчылыгын аныктайт.