Junior
Sinxron va asinxron so'rovlar o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Senkron so'rovlar joriy bajarilayotgan oqimni javob olguncha bloklaydi. Asenkron so'rovlar oqimni bloklamaydi; javob odatda callback, delegat yoki yopilish mexanizmi orqali operatsiya tugagach ishlov beriladi.
| Xususiyat | Senkron so'rov | Asenkron so'rov |
|---|---|---|
| Oqimni bloklash | Ha | Yo'q |
| UI-reaktivligi | UI'ni bloklashi mumkin | UI'ni bloklamaydi |
| Amalga oshirish murakkabligi | Oddiy | Murakkab (holatni boshqarish) |
| iOSda foydalanish | Kam, faqat qisqa vazifalar uchun, asosiy oqimda emas | Afzal, ayniqsa uzoq davom etadigan operatsiyalar uchun |
URLSession yordamida asenkron so'rov misoli:
// URLSessionTask yaratish
let task = URLSession.shared.dataTask(with: url) { data, response, error in
// Bu blok asenkron ravishda so'rov tugagach ishlaydi
if let error = error {
print("Xato: \(error.localizedDescription)")
return
}
// Olingan ma'lumotlarni ishlash
if let data = data {
print("Ma'lumotlar olindi, baytlar: \(data.count)")
}
// UI yangilanishi asosiy oqimda bo'lishi kerak
DispatchQueue.main.async {
// UI yangilash
}
}
// Vazifani boshlash
task.resume()
// Bu yerda kod darhol bajariladi, so'rov tugashini kutmay
print("So'rov yuborildi")