Sobes.tech
Junior — Middle

GCDda qanday navlar navbatlar mavjud va ular qanday farq qiladi xulq-atvor va foydalanishda?

sobes.tech AI

AIdan javob

GCD-da quyidagi navbat turlari mavjud:

  1. Serial Navbatlar (Serial Queues)

    • Vazifalarni ketma-ket bajaradi, biri ortidan biri.
    • Resurslarga kirishni sinxronlashtirish va raqobat shartlarini oldini olish uchun ishlatiladi.
    • Maxsus serial navbatlar yaratish mumkin.
  2. Kengaytirilgan navbatlar (Concurrent Queues)

    • Bir nechta vazifalarni bir vaqtning o'zida bajaradi.
    • Turli prioritetlarga (QoS) ega global kengaytirilgan navbatlar mavjud.
    • Ko'p protsessorli tizimlardan samarali foydalanishga imkon beradi.
  3. Asosiy navbat (Main Queue)

    • Ilovaning asosiy oqimiga bog'langan serial navbat.
    • UI-ni yangilash va boshqa operatsiyalar uchun ishlatiladi, ular asosiy oqimda bajarilishi kerak.

Farqlar va foydalanish:

  • Serial navbatlar bajarilish tartibini kafolatlaydi va umumiy resurslarga bir vaqtning o'zida kirishni oldini oladi.
  • Kengaytirilgan navbatlar vazifalarni bir vaqtning o'zida bajarish orqali samaradorlikni oshiradi.
  • iOS-da UI bilan ishlash uchun asosiy navbat majburiy.

Serial navbat yaratish va foydalanish misoli:

let serialQueue = DispatchQueue(label: "com.example.serial")
serialQueue.async {
    // Vazifa 1
}
serialQueue.async {
    // Vazifa 2, Vazifa 1 dan keyin bajariladi
}