Prévia do material em texto
Programação Assíncrona 1. Qual é o principal objetivo da programação assíncrona? A) Garantir que o código seja executado em ordem sequencial. B) Permitir que o programa continue executando outras tarefas enquanto aguarda a conclusão de uma operação. C) Reduzir o uso de memória no programa. D) Aumentar a complexidade do código para melhor controle. Resposta correta: B) Permitir que o programa continue executando outras tarefas enquanto aguarda a conclusão de uma operação. A programação assíncrona é projetada para melhorar a eficiência do fluxo de execução, permitindo que um programa realize outras operações enquanto aguarda a finalização de tarefas, como chamadas a APIs ou operações de leitura/gravação em disco. Isso é especialmente útil em aplicações que dependem de I/O, pois minimiza o tempo de espera e melhora a responsividade, criando uma experiência mais fluida para o usuário. 2. Em que situações a programação assíncrona é mais benéfica? A) Em cálculos matemáticos complexos que exigem muita CPU. B) Em aplicações que realizam chamadas de rede ou acessos a banco de dados. C) Em pequenos scripts que não interagem com o usuário. D) Em jogos que exigem renderização contínua na tela. Resposta correta: B) Em aplicações que realizam chamadas de rede ou acessos a banco de dados. A programação assíncrona é particularmente eficaz em cenários onde o tempo de espera pode ser longo, como chamadas de rede ou consultas a banco de dados. Ao permitir que o programa execute outras tarefas enquanto espera pela resposta, a experiência do usuário é significativamente aprimorada, evitando que a interface se torne não responsiva e permitindo a execução de múltiplas operações simultaneamente. 3. Qual é um dos principais padrões usados em programação assíncrona? A) Model-View-Controller (MVC). B) Promises e async/await. C) Singleton. D) Observer. af://n1975 Resposta correta: B) Promises e async/await. Promises e a sintaxe async/await são os principais padrões utilizados na programação assíncrona moderna, especialmente em JavaScript. Promises representam a conclusão de uma operação assíncrona e seu resultado, permitindo encadear operações de forma legível. A sintaxe async/await simplifica ainda mais o código assíncrono, permitindo que os desenvolvedores escrevam código assíncrono de maneira que se pareça com código síncrono, melhorando a legibilidade e a manutenção. 4. Qual é um dos principais desafios da programação assíncrona? A) Baixa eficiência na execução de tarefas. B) Dificuldade em lidar com erros e exceções. C) Maior simplicidade na estrutura do código. D) Redução do uso de recursos computacionais. Resposta correta: B) Dificuldade em lidar com erros e exceções. Um dos principais desafios da programação assíncrona é a gestão de erros e exceções. Como as operações assíncronas podem ser executadas em momentos diferentes, o rastreamento de onde um erro ocorreu pode ser complicado. Sem um tratamento adequado, as exceções podem passar despercebidas ou causar falhas silenciosas no programa. É essencial utilizar blocos try/catch adequados em conjunto com Promises e async/await para garantir que os erros sejam tratados de forma eficaz e que a lógica de recuperação seja implementada corretamente. 5. O que acontece quando uma função assíncrona é chamada? A) Ela bloqueia a thread até que a operação seja concluída. B) Ela retorna imediatamente, permitindo que outras operações sejam realizadas enquanto aguarda. C) Ela deve ser executada dentro de um bloco try/catch. D) Ela executa de forma síncrona, sem permitir outras operações. Resposta correta: B) Ela retorna imediatamente, permitindo que outras operações sejam realizadas enquanto aguarda. Quando uma função assíncrona é chamada, ela não bloqueia a execução do restante do código. Em vez disso, a função inicia sua operação e retorna uma Promise, permitindo que o programa continue executando outras tarefas. Quando a operação assíncrona é concluída, a Promise é resolvida ou rejeitada, e o resultado pode ser tratado posteriormente. Essa abordagem é fundamental para a eficiência em aplicações que requerem alta responsividade e interatividade, permitindo a execução paralela de tarefas.