Sobes.tech
Junior

Senkron ve asenkron istekler arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Senkron istekler, yanıt alınana kadar mevcut yürütme akışını engeller. Asenkron istekler ise akışı engellemez; yanıt, genellikle geri çağırma (callback), delegat veya kapanış mekanizmasıyla işlemi tamamlandıktan sonra işlenir.

Özellik Senkron istek Asenkron istek
Akış engelleme Evet Hayır
UI yanıt verebilirliği UI'yi engelleyebilir UI'yi engellemez
Uygulama karmaşıklığı Daha basit Daha karmaşık (durum yönetimi)
iOS'ta kullanım Nadiren, sadece kısa görevler için, ana akışta değil Tercih edilir, özellikle uzun işlemler için

URLSession kullanarak asenkron istek örneği:

// URLSessionTask oluştur
let task = URLSession.shared.dataTask(with: url) { data, response, error in
    // Bu blok, isteğin tamamlanmasından sonra asenkron olarak çalışır
    if let error = error {
        print("Hata: \(error.localizedDescription)")
        return
    }

    // Alınan verilerin işlenmesi
    if let data = data {
        print("Veriler alındı, bayt: \(data.count)")
    }

    // UI güncellemesi ana thread'de yapılmalı
    DispatchQueue.main.async {
        // UI güncelle
    }
}

// Görevi başlat
task.resume()

// Bu kod, isteğin tamamlanmasını beklemeden hemen çalışır
print("İstek gönderildi")