Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Webcamp Zagreb 2013
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Goran Peretin
October 27, 2013
Programming
330
1
Share
Webcamp Zagreb 2013
Slides for a talk "Concurrency" that I gave at Webcamp Zagreb.
Goran Peretin
October 27, 2013
More Decks by Goran Peretin
See All by Goran Peretin
On Concurrency
gperetin
1
410
Greenlet-based concurrency
gperetin
2
680
WebcampZG 2012
gperetin
1
440
Other Decks in Programming
See All in Programming
AIとRubyの静的型付け
ukin0k0
0
500
AIエージェントと協働するCLI開発 — BunとOpenClawで学んだこと
yoshikouki
1
230
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
3
1.9k
SPMマルチモジュールで テストカバレッジを取得する技法
yosshi4486
0
140
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
2
360
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
530
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
410
Oxcを導入して開発体験が向上した話
yug1224
4
270
AI時代のUIはどこへ行く?その2!
yusukebe
19
6.2k
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
12
3.2k
誰も頼んでない機能を出荷した話
zekutax
0
160
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
1.5k
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
200
Deep Space Network (abreviated)
tonyrice
0
160
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
540
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
390
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
How to build a perfect <img>
jonoalderson
1
5.5k
Amusing Abliteration
ianozsvald
1
190
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
280
Context Engineering - Making Every Token Count
addyosmani
9
930
We Are The Robots
honzajavorek
0
240
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
470
Technical Leadership for Architectural Decision Making
baasie
3
390
Transcript
Concurrency @gperetin Sunday, October 27, 13
Goran Peretin (@gperetin) Sunday, October 27, 13
Goran Peretin (@gperetin) Sunday, October 27, 13
Goran Peretin (@gperetin) Sunday, October 27, 13
Goran Peretin (@gperetin) Sunday, October 27, 13
Sadržaj Concurrency Parallelism Problemi/rješenja Sunday, October 27, 13
Sunday, October 27, 13
Demo time! Sunday, October 27, 13
Python3 & Ruby Sunday, October 27, 13
Concurrency Izvršavanje više taskova u nekom vremenskom periodu. Sunday, October
27, 13
Parallelism Izvršavanje više taskova istovremeno. Sunday, October 27, 13
Concurrency != Parallelism Sunday, October 27, 13
Process-based concurrency task == proces Sunday, October 27, 13
Thread-based concurrency task == thread Sunday, October 27, 13
GIL (Ruby & Python) • Global Interpreter Lock • dva
threada se ne mogu izvršavati istovremeno Sunday, October 27, 13
Ruby i Python ne mogu imati thread-based parallelism. Sunday, October
27, 13
PHP Sunday, October 27, 13
PHP • PHP nema threadove • Nije thread-safe • PHP-FPM
• Apache (mod_php) Sunday, October 27, 13
Java & .NET Sunday, October 27, 13
Java & .NET Sunday, October 27, 13
Problemi? • broj procesa i threadova • RAM Sunday, October
27, 13
Blocking I/O OS pauzira thread koji napravi I/O request. Za
izvršavanje drugog requesta treba nam novi thread. Sunday, October 27, 13
Rješenja? Non-blocking I/O Lightweight processes Sunday, October 27, 13
Non-blocking I/O Twisted, Tornado EventMachine Node.js Sunday, October 27, 13
Lightweight processes Erlang (actors) Go (goroutines) --- Python (greenlets) Ruby
(fibers) Sunday, October 27, 13
Što da koristim? Sunday, October 27, 13
Hvala! Pitanja? Sunday, October 27, 13