Sobes.tech
Intern

Greetings 1 ile Greetings 3 arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

İşlemlerle kuyruklar arasındaki temel fark, çalışma şeklidir.

Greetings 1 (senkron):

  • Senkrone kuyruklar (DispatchQueue) kullanır.
  • Senkron bir kuyrukta bir görev çalıştırılırken, mevcut akış görev tamamlanana kadar engellenir.

Greetings 3 (asenkron):

  • Asenkron kuyruklar (DispatchQueue) kullanır.
  • Asenkron bir kuyrukta bir görev çalıştırılırken, mevcut akış engellenmez ve çalışmaya devam edebilir. Görev, başka bir iş parçacığında yürütülür.

İşte temel farklar tablo halinde:

Özellik Greetings 1 (Senkron) Greetings 3 (Asenkron)
Kuyruk tipi Senkron (DispatchQueue) Asenkron (DispatchQueue)
İş parçacığı çalışması Mevcut iş parçacığı engellenir Mevcut iş parçacığı engellenmez
Çalışma iş parçacıkları Görev aynı iş parçacığında yürütülür Görev arka planda başka bir iş parçacığında yürütülür
Uygulama Basit ardışık işlemler UI'yi engellemeyen işlemler

İşte kavramı gösteren soyut bir kod örneği:

// Greetings 1
let syncQueue = DispatchQueue(label: "com.ornek.sync")
syncQueue.sync {
    // Uzun görev
    print("Greetings 1: Uzun görev tamamlandı") // Bu print, görevin tamamlanmasından sonra gerçekleşir
}
print("Greetings 1: Akış, sync'den sonra devam edecek") // Bu print, görevin tamamlanmasından sonra gerçekleşir

// Greetings 3
let asyncQueue = DispatchQueue(label: "com.ornek.async")
asyncQueue.async {
    // Uzun görev
    print("Greetings 3: Uzun görev tamamlandı") // Bu print daha sonra gerçekleşebilir
}
print("Greetings 3: Akış hemen async'den sonra devam edecek") // Bu print hemen gerçekleşir

Senkron ve asenkron yürütme arasındaki seçim, mevcut akışın engellenip engellenmeyeceğine veya arka planda çalışan görevin devam etmesine izin verilip verilmeyeceğine bağlıdır. iOS geliştirmede, uzun süren işlemler (örneğin, ağ istekleri, veri işleme) arka planda gerçekleştirilmek için sıklıkla asenkron yürütme kullanılır, böylece ana akış engellenmez ve kullanıcı arayüzü donmaz.