Junior
Sinxron və asinxron sorğular arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Sinxron sorğular cariət edən axınını hazırki icra axını bloklayır, cavab alınana qədər. Asinxron sorğular isə axını bloklamır; cavab, adətən geri çağırma (callback), nümayəndə və ya bağlama mexanizmi vasitəsilə əməliyyat tamamlandıqdan sonra işlənir.
| Xüsusiyyət | Sinxron sorğu | Asinxron sorğu |
|---|---|---|
| Axını bloklama | Bəli | Xeyr |
| UI-reaktivliyi | UI-ni bloklaya bilər | UI-ni bloklamır |
| İcra çətinliyi | Daha sadə | Daha mürəkkəb (vəziyyət idarəetməsi) |
| iOS-da istifadə | Nadir, yalnız qısa tapşırıqlar üçün, əsas axında deyil | Üstün tutulur, xüsusən uzun əməliyyatlar üçün |
URLSession istifadə edərək asinxron sorğu nümunəsi:
// URLSessionTask yaradın
let task = URLSession.shared.dataTask(with: url) { data, response, error in
// Bu blok, sorğu tamamlandıqdan sonra asinxron olaraq işləyir
if let error = error {
print("Xəta: \(error.localizedDescription)")
return
}
// Alınan məlumatların işlənməsi
if let data = data {
print("Məlumatlar alındı, baytlar: \(data.count)")
}
// UI yeniləməsi əsas axında olmalıdır
DispatchQueue.main.async {
// UI yeniləmə
}
}
// Tapşırığı işə salın
task.resume()
// Buradakı kod dərhal icra olunur, sorğunun tamamlanmasını gözləmir
print("Sorğu göndərildi")