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:
-
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.
-
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.
-
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
}