Sobes.tech
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")