Sobes.tech
Middle

Ketma-ketlik navbatida asinxron vazifa boshlash nima bo'ladi?

sobes.tech AI

AIdan javob

Vazifa bajariladi, ammo darhol emas. U navbatga qo'yiladi va bu navbatdagi boshqa vazifalar bilan ketma-ket bajariladi, ularning yakunlanishi bilan. Vazifa asinxron bo'lsa ham, uning bajarilishi bitta oqimli navbatning tabiatiga muvofiq cheklangan.

// Misol
let serialQueue = DispatchQueue(label: "com.example.serialqueue")

serialQueue.async {
    // Bu vazifa asinxron ravishda bajariladi,
    // ammo avvalgi vazifalar tugashini kutadi
    print("Vazifa 1 yakunlandi")
}

serialQueue.async {
    // Bu vazifa asinxron ravishda bajariladi,
    // ammo vazifa 1 ning tugashini kutadi
    print("Vazifa 2 yakunlandi")
}

Asosiy nuqtalar:

  • Ketma-ketlik: Vazifalar qo'shilgan tartibda bajariladi.
  • Faqat bitta oqim: Har qanday vaqtda, bu navbatdagi faqat bitta vazifa bajariladi.
  • Chaqiruvchining oqimini bloklamaydi: async metodiga chaqirish, uni chaqirgan oqimni bloklamaydi. Vazifa navbatga qo'yiladi va nazorat qaytariladi.
  • Vazifa ichidagi asinxronlik: Agar vazifa o'z ichida asinxron operatsiyalar (masalan, tarmoq so'rovi) bo'lsa, bu ichki operatsiyalar boshqa oqimlarda bajarilishi mumkin, ammo sekin navbatdagi vazifa, o'z vazifasi tugamaguncha (navbat nuqtai nazaridan) o'tmaydi.