Apresentação do 16° Encontro Python BH
Introdução à programação assíncrona.
Paradigmas de programação concorrente;
Conceitos de programação assíncrona;
Programação assíncrona em Python 3.5;
A abordagem escolhida aqui foi passar pelas principais abstrações e conceitos que envolvem programação paralela, dai então entrar de maneira apenas suficientemente profunda com um exemplo na programação em python
10. Programação Concorrente (threads)
Necessário controlar a quantidade de threads, alocar
threads/core
Criar uma thread é considerado caro em termos de
processamento e alocação exigidos
É preciso sincronizá-las manualmente
Impossível prever a ordem de execução, definida pelo SO
12. Programação Concorrente (async)
A ideia é processar outras coisas enquanto espera algum
recurso estar disponível
Requisição a serviço externo
Longa query em um banco de dados
Abrir
13. Programação Concorrente (async)
Menos controle sobre infraestrutura de execução (pool,
threads/core…)
Aproveita-se as threads que já existem do sistema (1...n)
A ideia é que a tarefa executada abdica do controle enquanto
espera pelo seu recurso bloqueante
16. EventLoop
Controlador das execuções
As corrotinas não interagem diretamente com o EventLoop
Quando uma corrotina decide se suspender, o EventLoop
coordena a próxima tarefa a executar