Entendendo async/await em Python com análise de performance

preview_player
Показать описание

Neste vídeo você vai entender os conceitos de programação síncrona e assíncrona em Python, bem como aprender utilizar a sintaxe async, await, utilizar a lib asyncio para executar as funções assíncronas e fazer análise de performance entre programas síncronos e assíncronos.

Vamos fundo no asyncio utilizando os métodos run, run_until_complete, new_event_loop, get_running_loop e gather.

Veja também o vídeo sobre FastAPI (com PostgreSQL, Async SQLAlchemy, AIOHTTP):

00:00 Introdução
01:42 Conceitos iniciais
03:41 Sync vs async com Bob Esponja
07:57 Sintaxe async
10:07 Eventloop
11:37 new_event_loop()
12:11 run_until_complete()
12:54 Sintaxe await
18:05 Versão síncrona do Bob Esponja
23:08 Verão assíncrona do Bob Esponja
26:07 gather()
29:32 run()
33:54 get_running_loop() e create_task()
Рекомендации по теме
Комментарии
Автор

Vídeo excelente! Explicação concisa e direto ao ponto. Continue com o ótimo trabalho!

giuliareal
Автор

A melhor didática que vi até agora sobre Asyncio

goncaze
Автор

37:37 É "async" você transforma a sua aplicação... Muito bom o vídeo, me ajudou bastante!

vittorduartte
Автор

Otima explicação, obrigado por compartilhar e se possivel continue postando videos!

TiagoGeremias
Автор

Excelente explicação, continue fazendo vídeos sobre python e fastapi. Parabéns

Victor-hcgq
Автор

Sua didática é incrível, irmão. Parabéns

pedrovitor
Автор

Explicação ótima! Obrigado por compartilhar.

EdemilsonFernandesVieira
Автор

Kkkk tenho um código monstruoso e só toma async await kkkk
Agora preciso revisar

FabioRBelotto
Автор

Que vídeo show. A explicação foi muito boa 👏

victormoreirademelo
Автор

Estava com muita dúvida e esse vídeo esclareceu muito!

Só fiquei com uma dúvida bem pequena: pra que usar GET_EVENT_LOOP() para incluir a montagem de sanduíche, se você pode só colocar a montagem de sanduíche logo em seguida, com um AWAIT na frente, tal como você tinha feito antes para o método mais geral COOK. É bom deixar bem claro onde é síncrono e onde assíncrono. Pelo o que eu entendi, apesar desse monte de ASYNC e AWAIT espalhado pelo programa, apenas dentro do ASYNCIO.GATHER() que ocorre, de fato, a execução paralelizada, o resto continua síncrono.

bit_physics
Автор

Quando você cria uma task em um event loop, ela já dispara automaticamente?

FabioRBelotto
Автор

Adorei a explicação, mas acho que o último exemplo ficou quebrado. Se ele só pode montar depois que a carne está pronta (10 segundo ) e ele demora 3 segundo para montar, ele não conseguiria fazer em 10 no total.

Acho que você quis usar o fato de que o milk-shake poderia ser paralelo, mas não tinha impacto pois ele demorava só cinco.

FabioRBelotto
Автор

video otimo, deu para entender bastante, mas esse final reduzir 3s nao faz sentido logico, pelo o que eu entendi:
- pao 3s
- hamburguer 10s
- fazer sanduíche 3s
- milk shake 5s

para fazer o sanduiche voce obrigatoriamente precisa do hamburguer, entao a contagem da montagem so contaria depois da conclusao do hamburguer, ficando:
- pao, hamburguer, milkshake 10s(tempo do hamburguer)
- montar sanduiche 3s
ficando 13 no final da logica

stnp
welcome to shbcf.ru