Excelente explicação, continue fazendo vídeos sobre python e fastapi. Parabéns
@st1np
8 ай бұрын
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
@TiagoGeremias
9 ай бұрын
Otima explicação, obrigado por compartilhar e se possivel continue postando videos!
@victormoreirademelo1246
Жыл бұрын
Que vídeo show. A explicação foi muito boa 👏
@eduardobritto-ecotx3076
Жыл бұрын
Muito bom!
@andreluispiccinini6616
Жыл бұрын
Muito bom!! obrigado!!
@abstratovital
Жыл бұрын
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.
@diogodev
Жыл бұрын
Vou começar do fim pro começo. Acho que fica mais fácil se vc entender o gather como um starter de tarefas assíncronas, é um starter onde vc pode startar várias tarefas ao mesmo tempo. Mas o que faz a magia da paralelização pra você é o eventloop, se você tem um eventloop rodando você pode add tarefas assíncronas nele (coroutines) e essas tarefas vão ser paralelizadas, o gather adiciona várias tarefas de uma vez, mas você tbm pode adicionar utilizando o create_task. O ponto de usar o gather é que além de você adicioar várias tarefas ao mesmo tempo, você pode usar o await pra garantir que a execução vai esperar o retorno das funções e pra pegar o valor retornado pelas funções caso tenha (por exemplo result = await.gather(...)), já o create_task só adiciona uma task no loop e vc não tem o controle do retorno daquela task. Respondendo a primeira pergunta, na primeira implementação a montagem do sanduiche tinha que esperar 3 tarefas para ser iniciada, na otimização ela só tem que esperar 2.
@potatocore9732
10 ай бұрын
@@diogodev A 1 detalhe que você deixou passar na última otimização que foi o tempo da carne é de 10s segundos e o de montar é de 3s e como montar depende da carne logo o tempo mínimo total seria 13s, então pq está dando 10 segundos de execução? É pq o programa está encerrando antes de executar os 3 segundos completos de montar o sanduíche, se vc fizer essa correção essa otimização estaria certa, mas para esse exemplo não importaria pq o tempo do milkshake é menor que o da carne, se fosse ao contrário seria útil. obs.: Apesar que na vida real vc poderia começar a montar o sanduíche inteiro e colocar a parte da carne no final depois de já ter colocado o pão e a salada, mas como vc abordou que para começar a montar vc precisa de todos os ingredientes prontos vc tem que esperar a carne ficar pronta Foi um ótimo video, é legal ver o seu ânimo de ensinar
Пікірлер: 13