Concurrencia en Crystal

1,087 views

Published on

Juan Wajnerman habla sobre la concurrencia en el lenguaje Crystal.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,087
On SlideShare
0
From Embeds
0
Number of Embeds
838
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Concurrencia en Crystal

  1. 1. Buenos Aires - Crystal Meetup #1 Concurrencia En Crystal Juan Wajnerman jwajnerman@manas.com.ar
  2. 2. Concurrencia vs Paralelismo
  3. 3. Estado Actual ❖ Un único thread ❖ Corutinas cooperativas (Fibers) ❖ Event Loop ❖ Canales de Mensajes (CSP)
  4. 4. Un Proceso Crystal Fiber #1 Fiber #2 Fiber #3 Fiber #… Runtime Scheduler Event Loop Archivos Sockets Pipes Signals Timers Channels GC
  5. 5. Fibers ❖ Cooperativos ❖ Livianos (desde 4KB) ❖ En 32 bit: máx. 512 fibers ❖ En 64 bit: millones y millones... Fiber Stack (8MB) 4KB
  6. 6. Fibers spawn do # ... end
  7. 7. Event Loop Event Loop Fiber libevent epoll, kqueue, etc… Sistema Operativo
  8. 8. Event Loop spawn do ... @socket.read(…) ... end spawn do ... sleep 5 ... end
  9. 9. Canales ❖ Permiten comunicar fibers sin compartir memoria ❖ Basados en CSP, similares a los canales de Go ❖ Dos tipos: ❖ Unbuffered ❖ Buffered
  10. 10. DEMO
  11. 11. Futuro ❖ Operador select para multiplexar operaciones en un mismo fiber ❖ Multithreading ❖ Loop fiber nativo (sin libevent)
  12. 12. ¡Gracias! Juan Wajnerman email: jwajnerman@manas.com.ar @wajtwitter:

×