Sobes.tech
Junior — Middle

Co se stane při použití metody sync na globální frontě DispatchQueue ve Swiftu?

sobes.tech AI

Odpověď od AI

Metoda sync na globální frontě DispatchQueue v Swift spouští předaný blok kódu synchronně na této frontě. To znamená, že aktuální vlákno bude čekat na dokončení bloku, než bude pokračovat.

Pokud zavoláte DispatchQueue.global().sync { ... }, pak:

  • Aktuální vlákno je zablokováno do dokončení bloku.
  • Blok se vykoná na globální frontě (na pozadí).

Je důležité pamatovat, že volání sync na téže frontě, na které již běží kód, může vést k deadlocku.

Příklad:

DispatchQueue.global().sync {
    print("Běží na globální frontě")
}
print("Tento kód poběží po bloku")