FC ConcursosFC Concursos

Questão FC95867

No que se refere a programação assíncrona, UX design e UI design, julgue o item a seguir. Considerando-se que o trecho de código a seguir tenha sido desenvolvido em Python e que se

Linguagens de Programação

CEBRASPE (CESPE) · 2024

No que se refere a programação assíncrona, UX design e UI design, julgue o item a seguir.

Considerando-se que o trecho de código a seguir tenha sido desenvolvido em Python e que seja executado em um ambiente multithreading, é correto afirmar que este é um exemplo de programação assíncrona, uma vez que as três funções não dependem umas das outras para serem executadas, ainda que não possam ser executadas simultaneamente.

def a():
      print(“Banco”)

def b():
      print(“Central”)

def c():
      print(“do Brasil”)

a ( )
b ( )
c ( )
  1. Errado
  2. Certo
Mostrar resposta e comentário

Gabarito

Errado

Comentário do professor

Comentário: Esse código simplesmente define três funções e as chama sequencialmente. A execução ocorre de forma síncrona, linha por linha, e não há qualquer mecanismo de paralelismo ou concorrência.

Vamos aos conceitos:

✅ Multithreading → Significa várias tarefas rodando ao mesmo tempo em diferentes "pedaços" (threads) do processador. Ideal para programas que precisam executar múltiplas tarefas simultaneamente, como um navegador carregando várias abas ao mesmo tempo.

✅ Programação Assíncrona → Permite que uma tarefa continue rodando sem precisar esperar outra terminar. Muito usada para operações que demoram, como baixar arquivos da internet sem travar o programa. Diferente do multithreading, a assíncrona não precisa de múltiplos processadores, pois usa um único fluxo (thread), alternando entre tarefas rapidamente.

🔹 Exemplo do Mundo Real:

  • Multithreading → Você e um amigo estão cozinhando juntos, um corta os legumes enquanto o outro frita o frango (tarefas ao mesmo tempo).
  • Assíncrono → Você coloca a água para ferver e, enquanto espera, vai cortando os legumes. Assim, não fica parado esperando.

Por que NÃO é um exemplo de programação assíncrona?​​​​​​​

  1. Execução síncrona:

    • As funções são chamadas uma após a outra, não há sobreposição.
    • A função a() executa antes de b(), e b() antes de c().
  2. Multithreading não está presente:

    • O código não usa threading nem asyncio, que são as principais abordagens para programação concorrente em Python.
  3. Conceito errado de assíncrono:

    • O fato de funções não dependerem umas das outras não significa que o código é assíncrono.
    • Para ser assíncrono, as funções precisariam ser chamadas de forma não bloqueante, o que não ocorre aqui.

Como seria um código assíncrono em Python?

Se o objetivo fosse executar as funções de maneira assíncrona, poderíamos usar asyncio:

import asyncio

async def a():
    print("Banco")

async def b():
    print("Central")

async def c():
    print("do Brasil")

async def main():
    await asyncio.gather(a(), b(), c())  # Executa todas ao mesmo tempo

asyncio.run(main())

Esse código executaria a(), b() e c() de forma assíncrona e paralela.

A questão está ERRADA porque o código não é assíncrono e não utiliza multithreading. Ele apenas chama funções sequencialmente de forma síncrona.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo