Sobes.tech
Junior — Middle

Šta se dešava kada se koristi metoda sync na globalnoj DispatchQueue u Swift-u?

sobes.tech АИ

Одговор од АИ

Metoda sync na globalnoj DispatchQueue u Swift izvršava prosleđeni blok koda sinhrono na toj red. To znači da će trenutna nit čekati da se blok završi pre nego što nastavi.

Ako pozovete DispatchQueue.global().sync { ... }, tada:

  • Trenutna nit će biti blokirana do završetka bloka.
  • Blok se izvršava na globalnoj redi (u pozadinskom thread-u).

Važno je zapamtiti da pozivanje sync na istoj redi na kojoj već radi kod može dovesti do deadlock-a.

Primer:

DispatchQueue.global().sync {
    print("Izvršava se na globalnoj redi")
}
print("Ovaj kod će se izvršiti nakon bloka")