Saltar para o conteúdo principal
🔒 Modo de pré-visualização. As primeiras quinze aulas de Foundations são grátis; esta é Pro. Inicie um trial de 7 dias para desbloquear o editor, as dicas AI e o resto do programa. Cartão necessário, cancele a qualquer momento no Dashboard.Iniciar trial de 7 dias →
← CursosSenior Deep-DivesModule 1 · Concurrency internals · RecapPadrões de cancelamento em assínciopredict25 / 161
+125 XP
Tarefa
📝 **Pergunta:** Preveja o resultado exato. \`worker\` imprime \`start\` e aguarda um longo sono. Main cancela a tarefa. Trace: quem imprime fogo, em que ordem? 📋 Escolha a resposta certa. 💡 **Dica:** Releia a teoria acima se não tiver certeza.
Prevê a saída

Lê o código com atenção

import asyncio


async def worker():
    try:
        print("start")
        await asyncio.sleep(10)
        print("never")
    except asyncio.CancelledError:
        print("cleanup")
        raise


async def main():
    t = asyncio.create_task(worker())
    await asyncio.sleep(0)
    t.cancel()
    try:
        await t
    except asyncio.CancelledError:
        print("caught")
    print("after")


asyncio.run(main())

O que o programa vai imprimir? Escreve aqui:

💬 Discussão

Seja o primeiro a fazer uma pergunta ou compartilhar uma dica.
Faça login para entrar na discussão. A leitura é gratuita.
Carregando discussão…