×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Gevent & Programação Concorrente Cesar Kawakami Tech Lead @ Geekie
Slide 2
Slide 2 text
Perguntas rápidas
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
Concorrência
Slide 5
Slide 5 text
tempo aplicação rodando aplicação rodando DB request
Slide 6
Slide 6 text
Multithreading
Slide 7
Slide 7 text
Cooperative
Slide 8
Slide 8 text
Evented I/O (libev, libuv, …)
Slide 9
Slide 9 text
Long Polling
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
Em Python
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
d = getPage(query) d.addCallback(cbFirstPage, country) d.addErrback(ebGeneric, country)
Slide 15
Slide 15 text
d = getPage(query) def then1(): d2 = getPage(query2) def then2(): d3 = … d2.addCallback(then2) d.addCallback(then1, country)
Slide 16
Slide 16 text
d = getPage(query) def then1(): d2 = getPage(query2) def then2(): d3 = … d2.addCallback(then2) d.addCallback(then1, country) d = getPage(query) d2 = getPage(query2) d3 = …
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
events + greenlets
Slide 19
Slide 19 text
OS threads 1-1 Python threads
Slide 20
Slide 20 text
OS threads 1-N greenlets
Slide 21
Slide 21 text
threading.Thread gevent.Greenlet threading.Thread(target=f).start() gevent.spawn(f) threading.RLock gevent.lock.RLock
Slide 22
Slide 22 text
Demo
Slide 23
Slide 23 text
Convertendo projetos
Slide 24
Slide 24 text
Ecossistema
Slide 25
Slide 25 text
import gevent.monkey gevent.monkey.patch_all()
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
Serviços remotos
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
No content
Slide 30
Slide 30 text
No content
Slide 31
Slide 31 text
Leituras Recomendadas
Slide 32
Slide 32 text
http://www.dabeaz.com/ coroutines/Coroutines.pdf
Slide 33
Slide 33 text
http://krondo.com/? page_id=1327
Slide 34
Slide 34 text
http://pyvideo.org/video/396/ pycon-2011--an-outsider--39- s-look-at-co-routines
Slide 35
Slide 35 text
http://pyvideo.org/video/ 377/pycon-2011--using- coroutines-to-create-efficient-
Slide 36
Slide 36 text
http:// engineering.pinterest.com/ post/65713073803
Slide 37
Slide 37 text
We're hiring!
Slide 38
Slide 38 text
Q&A • speakerdeck.com/cesarkawakami • @cesarkawakami • www.geekie.com.br