Explique o princípio de funcionamento das corrotinas e como elas são gerenciadas durante a execução.
Resposta da IA
sobes.tech IA
As corrotinas são funções que podem pausar a sua execução e retomá-la mais tarde, mantendo o seu estado. Em Python, as corrotinas são implementadas com a palavra-chave async def e geridas através de um ciclo de eventos (event loop).
Durante a execução, uma corrotina pode "esperar" (await) que uma operação assíncrona termine, libertando o controlo para outras tarefas. Isto permite trabalhar de forma eficiente com operações de entrada/saída sem bloquear o thread.
Exemplo de uma corrotina simples:
import asyncio
async def say_hello():
print("Olá")
await asyncio.sleep(1) # pausa a corrotina por 1 segundo
print("Mundo")
asyncio.run(say_hello())
Aqui, await transfere o controlo para o ciclo de eventos, que pode alternar entre outras corrotinas, garantindo a assíncronia.
Assim, as corrotinas permitem escrever código assíncrono semelhante ao síncrono, simplificando o tratamento de tarefas paralelas.