~/questoes/programacao
Código síncrono executa linha por linha, aguardando cada operação terminar antes de prosseguir. Código assíncrono permite que operações longas aconteçam em background, liberando a execução para outras tarefas sem travar a interface.
Código síncrono bloqueia a execução até completar porque a próxima linha só roda depois que a anterior termina. Assíncrono não-bloqueia porque permite que operações demoradas rodem em segundo plano enquanto o resto do código continua executando, mantendo a interface responsiva.
A diferença entre síncrono e assíncrono não tem relação com o escopo das variáveis (globais ou locais). Ambos funcionam com qualquer tipo de variável. O que importa é quando e como o código é executado.
É exatamente o oposto. Código síncrono executa sequencialmente, linha por linha. Assíncrono é que permite paralelismo aparente, deixando operações rodarem enquanto outras coisas acontecem.
Assíncrono não é sempre mais rápido. Depende do contexto. Para operações simples, síncrono é mais direto e rápido. Assíncrono brilha em requisições de API, leitura de arquivos e tarefas demoradas onde você não quer travar a interface.
Esta é a diferença fundamental. Síncrono bloqueia: se uma operação leva 5 segundos, tudo fica congelado por 5 segundos. Assíncrono não-bloqueia: a operação roda em background e o código continua, permitindo interação com a página.