Sobes.tech
Junior — Middle

Explique as principais diferenças entre os modos de execução síncrono e assíncrono.

sobes.tech IA

Resposta da IA

O modo de execução síncrono significa que o processo ou thread executa tarefas sequencialmente, aguardando a conclusão de cada operação antes de passar para a seguinte. Nesse modo, a execução fica bloqueada até obter o resultado.

O modo assíncrono permite iniciar operações sem esperar que elas terminem, e continuar a execução de outras tarefas. Os resultados das operações assíncronas são processados posteriormente, por exemplo, através de callbacks, promessas ou async/await.

Principais diferenças:

  • Bloqueio: código síncrono bloqueia o thread, assíncrono não.
  • Desempenho: modo assíncrono é mais eficiente ao lidar com operações de entrada/saída, evitando ociosidade.
  • Complexidade: código assíncrono é mais difícil de entender e depurar.

Exemplo em Swift:

// Chamada síncrona
func fetchData() -> Data {
    // bloqueia o thread até obter os dados
}

// Chamada assíncrona
func fetchDataAsync(completion: @escaping (Data) -> Void) {
    DispatchQueue.global().async {
        let data = ... // obtenção de dados
        DispatchQueue.main.async {
            completion(data)
        }
    }
}

No iOS, a assíncronia é frequentemente usada para requisições de rede e trabalho com UI, para não bloquear o thread principal.