Intern
Greetings 1 və Greetings 3 arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Əsas fərq növbələrlə işləmə üsulundadır.
Greetings 1 (sinxron):
- Sinxron növbələr (
DispatchQueue) istifadə edir. - Sinxron növbədə vəzifə yerinə yetirilərkən, cari axın vəzifənin tamamlanmasına qədər bloklanır.
Greetings 3 (asinxron):
- Asinxron növbələr (
DispatchQueue) istifadə edir. - Asinxron növbədə vəzifə yerinə yetirilərkən, cari axın bloklanmır və işləməyə davam edə bilər. Vəzifə başqa bir işçi axınında icra olunur.
Əsas fərqlər cədvəldə:
| Xüsusiyyət | Greetings 1 (Sinxron) | Greetings 3 (Asinxron) |
|---|---|---|
| Növbə tipi | Sinxron (DispatchQueue) |
Asinxron (DispatchQueue) |
| İş axını | Cari axın bloklanır | Cari axın bloklanmır |
| İcra işçi axınları | Eyni axında vəzifə yerinə yetirilir | Fon axınında vəzifə yerinə yetirilir |
| Tətbiq | Sadə ardıcıl əməliyyatlar | UI-ni bloklamayan əməliyyatlar |
Konsepti göstərən abstrakt kod nümunəsi:
// Greetings 1
let syncQueue = DispatchQueue(label: "com.nümunə.sync")
syncQueue.sync {
// Uzun vəzifə
print("Greetings 1: Uzun vəzifə tamamlandı") // Bu print vəzifə tamamlandıqdan sonra baş verir
}
print("Greetings 1: Axın sync-dən sonra davam edəcək") // Bu print vəzifə tamamlandıqdan sonra baş verir
// Greetings 3
let asyncQueue = DispatchQueue(label: "com.nümunə.async")
asyncQueue.async {
// Uzun vəzifə
print("Greetings 3: Uzun vəzifə tamamlandı") // Bu print daha sonra baş verə bilər
}
print("Greetings 3: Axın dərhal async-dən sonra davam edəcək") // Bu print dərhal baş verir
Senkron və asinxron icra arasında seçim, cari axını bloklamaq və ya icazə vermək ehtiyacına əsaslanır. iOS inkişafında, uzunmüddətli əməliyyatlar (məsələn, şəbəkə sorğuları, məlumatların emalı) fon rejimində yerinə yetirmək üçün çox vaxt asinxron icra istifadə olunur ki, əsas axın bloklanmasın və istifadəçi interfeysi donmasın.