Sobes.tech
Middle

Агар дар навбати пайдарпай вазифаи асинхронӣ оғоз кунед, чӣ мешавад?

sobes.tech AI

Ҷавоб аз AI

Вазифа иҷро мешавад, аммо фавран нест. Он ба навбат гузошта мешавад ва ба таври пайдарпай бо дигар вазифаҳо дар ин навбат иҷро мешавад, дар ҳоле ки онҳо ба анҷом мерасанд. Бо вуҷуди асинхронӣ будани вазифа, иҷрои он бо табиати навбати пайдарпай бо як сӯрохи маҳдуд мешавад.

// Мисол
let serialQueue = DispatchQueue(label: "com.example.serialqueue")

serialQueue.async {
    // Ин вазифа асинхронӣ иҷро мешавад,
    // аммо интизор мешавад, ки вазифаҳои қаблӣ дар навбат ба анҷом расанд
    print("Вазифа 1 анҷом ёфт")
}

serialQueue.async {
    // Ин вазифа асинхронӣ иҷро мешавад,
    // аммо интизор мешавад, ки вазифаи 1 ба анҷом расад
    print("Вазифа 2 анҷом ёфт")
}

Мавқеи асосӣ:

  • Тартиб: Вазифаҳо дар он тартиб иҷро мешаванд, ки илова карда шудаанд.
  • Як сӯрохи: Дар ҳар лаҳза, танҳо як вазифа аз ин навбат иҷро мешавад.
  • Намедонед, ки сӯрохи, ки онро даъват мекунад, боз намедорад: Даъвати методи async сӯрохи, ки онро даъват мекунад, боз намедорад. Вазифа ба навбат гузошта мешавад ва назорат баргардонида мешавад.
  • Асинхронӣ дар дохили вазифа: Агар вазифа дорои амалҳои асинхронӣ бошад (масалан, дархости шабакавӣ), ин амалҳои дохилӣ метавонанд дар дигар сӯрохиҳо иҷро шаванд, аммо вазифа дар навбати пайдарпай набарояд ба вазифаи оянда, то он вазифа ба анҷом нарасад (аз нуқтаи назари навбат).