Slides for a talk "Concurrency" that I gave at Webcamp Zagreb.
Concurrency@gperetinSunday, October 27, 13
View Slide
Goran Peretin (@gperetin)Sunday, October 27, 13
SadržajConcurrencyParallelismProblemi/rješenjaSunday, October 27, 13
Sunday, October 27, 13
Demo time!Sunday, October 27, 13
Python3 & RubySunday, October 27, 13
ConcurrencyIzvršavanje više taskova u nekom vremenskomperiodu.Sunday, October 27, 13
ParallelismIzvršavanje više taskova istovremeno.Sunday, October 27, 13
Concurrency != ParallelismSunday, October 27, 13
Process-based concurrencytask == procesSunday, October 27, 13
Thread-based concurrencytask == threadSunday, October 27, 13
GIL (Ruby & Python)• Global Interpreter Lock• dva threada se ne mogu izvršavatiistovremenoSunday, October 27, 13
Ruby i Python ne mogu imati thread-basedparallelism.Sunday, October 27, 13
PHPSunday, October 27, 13
PHP• PHP nema threadove• Nije thread-safe• PHP-FPM• Apache (mod_php)Sunday, October 27, 13
Java & .NETSunday, October 27, 13
Problemi?• broj procesa i threadova• RAMSunday, October 27, 13
Blocking I/OOS pauzira thread koji napravi I/O request.Za izvršavanje drugog requesta treba nam novithread.Sunday, October 27, 13
Rješenja?Non-blocking I/OLightweight processesSunday, October 27, 13
Non-blocking I/OTwisted, TornadoEventMachineNode.jsSunday, October 27, 13
Lightweight processesErlang (actors)Go (goroutines)---Python (greenlets)Ruby (fibers)Sunday, October 27, 13
Što da koristim?Sunday, October 27, 13
Hvala!Pitanja?Sunday, October 27, 13