Intern
Greetings 1 va Greetings 3 o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Asosiy farq navbatlar bilan ishlash usulida.
Greetings 1 (sinxron):
- Sinxron navbatlar (
DispatchQueue) ishlatadi. - Sinxron navbatda vazifa bajarilayotganda, joriy oqim vazifa tugaguncha bloklanadi.
Greetings 3 (asinxron):
- Asinxron navbatlar (
DispatchQueue) ishlatadi. - Asinxron navbatda vazifa bajarilayotganda, joriy oqim bloklanmaydi va ishlashda davom etishi mumkin. Vazifa boshqa oqimda bajariladi.
Mana asosiy farqlar jadvalda:
| Xususiyat | Greetings 1 (Sinxron) | Greetings 3 (Asinxron) |
|---|---|---|
| Navbat turi | Sinxron (DispatchQueue) |
Asinxron (DispatchQueue) |
| Oqim ishlashi | Joriy oqim bloklanadi | Joriy oqim bloklanmaydi |
| Ishga tushirish oqimlari | Vazifa aynan shu oqimda bajariladi | Vazifa fon oqimida bajariladi |
| Qo'llanilishi | Oddiy ketma-ket operatsiyalar | UI ni bloklamasdan bajariladigan operatsiyalar |
Kod misoli (konseptsiyani ko'rsatadigan):
// Greetings 1
let syncQueue = DispatchQueue(label: "com.example.sync")
syncQueue.sync {
// Uzun vazifa
print("Greetings 1: Uzun vazifa tugadi") // Bu print vazifa tugagach bo'lib o'tadi
}
print("Greetings 1: Oqim sync'dan keyin davom etadi") // Bu print vazifa tugagach bo'lib o'tadi
// Greetings 3
let asyncQueue = DispatchQueue(label: "com.example.async")
asyncQueue.async {
// Uzun vazifa
print("Greetings 3: Uzun vazifa tugadi") // Bu print keyinchalik bo'lishi mumkin
}
print("Greetings 3: Oqim darhol async'dan keyin davom etadi") // Bu print darhol bo'lib o'tadi
Senkron va asinxron bajarish o'rtasidagi tanlov, joriy oqimni bloklash yoki bloklamaslik kerakligiga bog'liq. iOS dasturlashda, asinxron bajarish ko'pincha uzoq davom etadigan operatsiyalar uchun ishlatiladi (masalan, tarmoq so'rovlar, ma'lumotlarni qayta ishlash), bu esa asosiy oqimni bloklamasdan foydalanuvchi interfeysining to'xtashini oldini oladi.