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.