Sobes.tech
Junior — Middle

Quali sono le differenze tra chiamate sincrone e asincrone nella programmazione?

sobes.tech AI

Risposta dell'AI

Le chiamate sincrone bloccano l'esecuzione del programma finché l'operazione non termina. Ciò significa che il codice successivo non inizierà a essere eseguito finché la chiamata corrente non restituirà un risultato. Su iOS, questo può portare al blocco del thread principale e al congelamento dell'interfaccia.

Le chiamate asincrone consentono di avviare operazioni senza bloccare il thread principale. Il risultato arriva più tardi tramite callback, closure o altri meccanismi. Questo migliora la reattività dell'app, specialmente quando si lavora con rete o compiti lunghi.

Esempio di chiamata asincrona in Swift:

DispatchQueue.global().async {
    // Operazione lunga
    let result = performHeavyTask()
    DispatchQueue.main.async {
        // Aggiornamento UI con il risultato
        updateUI(with: result)
    }
}