Mudanças entre as edições de "Oficina de Concorrência em Python"

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
(Criou página com '[[Arquivo:Muitos-pratos-girando.jpg|thumb|300px|O malabarista de pratos é um só, mas trabalhando de modo concorrente ele mantém 18 pratos girando ao mesmo tempo, dedicando ...')
 
Linha 9: Linha 9:
 
;Quando: 2-feira, 19/jan/2015, 19:30
 
;Quando: 2-feira, 19/jan/2015, 19:30
 
;Onde: [[Como chegar|Sede do Garoa Hacker Clube]]
 
;Onde: [[Como chegar|Sede do Garoa Hacker Clube]]
;Inscrições: não é preciso se inscrever, basta aparecer. Esta é mais uma atividade aberta e gratuita do Garoa Hacker Clube.
+
;Inscrições: Não é preciso se inscrever, basta aparecer. Esta é mais uma atividade aberta e gratuita do Garoa Hacker Clube.
;Pré-requisitos: saber programar em Python; se quiser praticar na hora, trazer Python 3.3 instalado
+
;Pré-requisitos: Saber programar em Python; se quiser praticar na hora, trazer Python 3.3 instalado
   
 
== Descrição ==
 
== Descrição ==

Edição das 16h18min de 16 de janeiro de 2015

O malabarista de pratos é um só, mas trabalhando de modo concorrente ele mantém 18 pratos girando ao mesmo tempo, dedicando um pouco de tempo a cada prato.

Objetivo

Aprender a usar objetos Future da biblioteca padrão do Python ≥ 3.3 para lidar com threads, multiprocessos e programação orientada a eventos.

Quando, onde, como

Quando
2-feira, 19/jan/2015, 19:30
Onde
Sede do Garoa Hacker Clube
Inscrições
Não é preciso se inscrever, basta aparecer. Esta é mais uma atividade aberta e gratuita do Garoa Hacker Clube.
Pré-requisitos
Saber programar em Python; se quiser praticar na hora, trazer Python 3.3 instalado

Descrição

A partir do Python 3.3 o pacote concurrent.futures oferece a classe Future, que representa uma computação pendente, facilitando o tratamento das respostas e condições de erro. A future the Python é semelhante aos conceitos de deferreds e promises encontrados em frameworks orientados a evento em Python, JavaScript e Ruby.

O mesmo módulo concurrent.futures oferece as classes ThreadPoolExecutor e ProcessPoolExecutor que recebem futures e gerenciam sua execução assíncrona usando um conjunto de threads ou processos, respectivamente. No caso de ProcessPoolExecutor, a execução pode se dar em paralelo em um computador com vários núcleos.

No Python 3.4, a biblioteca asyncio traz sua própria asyncio.Future, parecida mas não idêntica a concurrent.futures.Future.

Nesta oficina vamos investigar o que são futures, e como usá-las para fazer operações intensivas em I/O, como Web scraping. Em uma futura oficina trataremos de operações intensivas em CPU, como indexação de textos.