Sobes.tech
Junior

Синхрон жана асинхрон суроолордун айырмасы эмнеде?

sobes.tech AI

AIден жооп

Синхрондуу суроолор учурдагы иштетүү агымын жооп алгандан кийин токтотот. Асинхрондуу суроолор агымды токтотпойт; жооп иштетүү операциясы аяктагандан кийин, адатта, кайтаруу механизми (callback), делегат же жабуу аркылуу ишке ашырылат.

Өзгөчөлүк Синхрондуу суроо Асинхрондуу суроо
Агымды токтотуу Ооба Жок
UI-реактивдүүлүк Мүмкүн UI'ни токтотушу мүмкүн Токтотпойт UI'ни
Ишке ашыруу татаалдыгы Жөнөкөй Кыйын (абалдарды башкаруу)
iOS'до колдонуу Аз, кыска тапшырмалар үчүн, негизги агымда эмес Арзуу, өзгөчө узак операциялар үчүн

URLSession колдонуп асинхрондуу суроо мисалы:

// URLSessionTask түзүү
let task = URLSession.shared.dataTask(with: url) { data, response, error in
    // Бул блок асинхрондуу түрдө суроо аяктагандан кийин ишке ашат
    if let error = error {
        print("Ката: \(error.localizedDescription)")
        return
    }

    // Алынган маалыматтарды иштетүү
    if let data = data {
        print("Маалымат алынды, байттар: \(data.count)")
    }

    // UI жаңыртуу негизги агымда болушу керек
    DispatchQueue.main.async {
        // UI жаңыртуу
    }
}

// Тапшырманы баштоо
task.resume()

// Бул жактагы код дароо ишке ашат, суроо аяктагандан кийин күтпөй
print("Суроо жөнөтүлдү")