Sobes.tech
Intern

Фарқи байни Greetings 1 ва Greetings 3 чист?

sobes.tech AI

Ҷавоб аз AI

Асосий фарқият дар усулҳои кор бо навбатҳо мебошад.

Greetings 1 (синхронӣ):

  • Истифода мекунад навбатҳои синхронӣ (DispatchQueue).
  • Вақте ки вазифа дар навбати синхронӣ иҷро мешавад, ҷараёни ҳозира бозмедорад то анҷоми вазифа.

Greetings 3 (асинхронӣ):

  • Истифода мекунад навбатҳои асинхронӣ (DispatchQueue).
  • Вақте ки вазифа дар навбати асинхронӣ иҷро мешавад, ҷараёни ҳозира бозмедорад ва метавонад идома диҳад. Вазифа дар дигар ҷараён аз пуле аз ҷараёнҳо иҷро мешавад.

Инҳоянд фарқиятҳои асосӣ дар ҷадвал:

Хусусият Greetings 1 (Синхронӣ) Greetings 3 (Асинхронӣ)
Навбати навбат Синхрон (DispatchQueue) Асинхрон (DispatchQueue)
Кори ҷараён Ҷараёни ҳозира бозмедорад Ҷараёни ҳозира бозмедорад намешавад
Ҷараёни иҷро Вазифа дар ҳамин ҷараён иҷро мешавад Вазифа дар ҷараёни пасзамина иҷро мешавад
Истифода Операсияҳои содда ва пайдарпай Операсияҳое, ки набояд UI-ро боздоранд

Маслиҳат оид ба коди намуна (абстрактӣ, нишон медиҳад консепт):

// Greetings 1
let syncQueue = DispatchQueue(label: "com.example.sync")
syncQueue.sync {
    // Вазифаи дароз
    print("Greetings 1: Вазифаи дароз анҷом ёфт") // Ин print пас аз анҷом додани вазифа рух медиҳад
}
print("Greetings 1: Ҷараён пас аз sync идома меёбад") // Ин print пас аз анҷом додани вазифа рух медиҳад

// Greetings 3
let asyncQueue = DispatchQueue(label: "com.example.async")
asyncQueue.async {
    // Вазифаи дароз
    print("Greetings 3: Вазифаи дароз анҷом ёфт") // Ин print мумкин аст дертар рух диҳад
}
print("Greetings 3: Ҷараён фавран пас аз async идома меёбад") // Ин print фавран рух медиҳад

Интихоб байни иҷрои синхронӣ ва асинхронӣ вобаста аст, ки оё лозим аст ҷараёни ҳозира боздошта шавад ё иҷозат дода шавад, ки идома диҳад, дар ҳоле ки вазифаи пасзамина иҷро мешавад. Дар таҳияи iOS, одатан истифодаи асинхронӣ барои иҷрои вазифаҳои дарозмуддат (масалан, дархостҳои шабакавӣ, коркарди маълумот) дар пасзамина истифода мешавад, то ки ҷараёни асосӣ боздошта нашавад ва интерфейси корбар хунук нашавад.