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
High-level Concurrency
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Rob Brown
August 20, 2015
Programming
1
63
High-level Concurrency
Learn about how the actor model can hide and manage the complexities of concurrent programs.
Rob Brown
August 20, 2015
Tweet
Share
More Decks by Rob Brown
See All by Rob Brown
Data Source Combinators
robbrown
2
74
Elixir
robbrown
1
230
MVVM
robbrown
3
260
Reactive Cocoa
robbrown
2
150
UIKit Dynamics
robbrown
0
78
iOS State Preservation and Restoration
robbrown
5
750
Anti-Patterns
robbrown
3
120
Core Animation: Beyond the Basics
robbrown
1
96
Pragmatic Blocks
robbrown
3
110
Other Decks in Programming
See All in Programming
15年目のiOSアプリを1から作り直す技術
teakun
0
570
今更考える「単一責任原則」 / Thinking about the Single Responsibility Principle
tooppoo
3
1.2k
PJのドキュメントを全部Git管理にしたら、一番喜んだのはAIだった
nanaism
0
220
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
240
ご飯食べながらエージェントが開発できる。そう、Agentic Engineeringならね。
yokomachi
1
270
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
2
180
AIとペアプロして処理時間を97%削減した話 #pyconshizu
kashewnuts
1
170
Ruby x Terminal
a_matsuda
5
510
文字コードの話
qnighy
43
16k
日本だけで解禁されているアプリ起動の方法
ryunakayama
0
360
Premier Disciplin for Micro Frontends Multi Version/ Framework Scenarios @OOP 2026, Munic
manfredsteyer
PRO
0
200
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
390
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
140
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
How to make the Groovebox
asonas
2
2k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
240
Statistics for Hackers
jakevdp
799
230k
Technical Leadership for Architectural Decision Making
baasie
2
270
RailsConf 2023
tenderlove
30
1.4k
How STYLIGHT went responsive
nonsquared
100
6k
Into the Great Unknown - MozCon
thekraken
40
2.3k
Building an army of robots
kneath
306
46k
Transcript
High%level)Concurrency ©"Robert"Brown"August"2015"@robby_brown
Overview 1. The&Problems 2. Architecture&Theory 3. Examples 4. Demo ©"Robert"Brown"August"2015"@robby_brown
The$Problems ©"Robert"Brown"August"2015"@robby_brown
Atomicity ©"Robert"Brown"August"2015"@robby_brown
Nondeterminism ©"Robert"Brown"August"2015"@robby_brown
Race%Condi+ons ©"Robert"Brown"August"2015"@robby_brown
Mutual&Exclusion ©"Robert"Brown"August"2015"@robby_brown
Dead%lock ©"Robert"Brown"August"2015"@robby_brown
The$list$goes$on... ©"Robert"Brown"August"2015"@robby_brown
Keeping'track'of'so'much'informa3on'is'hard ©"Robert"Brown"August"2015"@robby_brown
Computers*are*good*at*tracking*lots*of* informa4on ©"Robert"Brown"August"2015"@robby_brown
We#write#code#that#tests#code. We#write#code#that#generates#code. ©"Robert"Brown"August"2015"@robby_brown
Let's&use&a&system&that&lets&the&computer& manage&concurrency ©"Robert"Brown"August"2015"@robby_brown
Architecture)Theory ©"Robert"Brown"August"2015"@robby_brown
Actor&Model ©"Robert"Brown"August"2015"@robby_brown
A"universal"primi.ve"of"concurrent" computa.on. —"Defini(on"of"an"Actor1 1"Wikipedia ©"Robert"Brown"August"2015"@robby_brown
[T]he&problem&with&[OOP]&languages& is&they’ve&got&all&this&implicit& environment&that&they&carry&around& with&them. —"Joe"Armstrong3 3"Coder's"at"Work ©"Robert"Brown"August"2015"@robby_brown
You$wanted$a$banana$but$what$you$ got$was$a$gorilla$holding$the$banana$ and$the$en3re$jungle. —"Joe"Armstrong3 3"Coder's"at"Work ©"Robert"Brown"August"2015"@robby_brown
I'm$sorry$that$I$long$ago$coined$the term$"objects"$for$this$topic$because$ it$gets$many$people$to$focus$on$the lesser$idea. —"Alan"Kay2 2"Squeak"Mailing"List ©"Robert"Brown"August"2015"@robby_brown
The$key$in$making$great$and$ growable$systems$is$much$more$to$ design$how$its$modules$ communicate$rather$than$what$their$ internal$proper7es$and$behaviors$ should$be. —"Alan"Kay2 2"Squeak"Mailing"List ©"Robert"Brown"August"2015"@robby_brown
Protocol'oriented,programming, focuses,on,interac4ons,rather,than, object,hierarchies. See#WWDC#2015#Session#408 ©"Robert"Brown"August"2015"@robby_brown
Actor&Opera+ons4 1. Make'local'decisions 2. Create'other'actors 3. Send/receive'messages 4"Wikipedia ©"Robert"Brown"August"2015"@robby_brown
Warning:(Flow(Charts(Ahead5 5"XKCD"518 ©"Robert"Brown"August"2015"@robby_brown
Typical(Actor(Flow ©"Robert"Brown"August"2015"@robby_brown
Example Your%Code%as%a%Crime%Scene ©"Robert"Brown"August"2015"@robby_brown
Sequen&al)Processing ©"Robert"Brown"August"2015"@robby_brown
©"Robert"Brown"August"2015"@robby_brown
Concurrent)Processing ©"Robert"Brown"August"2015"@robby_brown
©"Robert"Brown"August"2015"@robby_brown
Parallel&Processing ©"Robert"Brown"August"2015"@robby_brown
©"Robert"Brown"August"2015"@robby_brown
©"Robert"Brown"August"2015"@robby_brown
Monad&Binding ©"Robert"Brown"August"2015"@robby_brown
©"Robert"Brown"August"2015"@robby_brown
Two$level(Aggrega-on ©"Robert"Brown"August"2015"@robby_brown
©"Robert"Brown"August"2015"@robby_brown
Interchangable,Parts ©"Robert"Brown"August"2015"@robby_brown
©"Robert"Brown"August"2015"@robby_brown
Other&Examples ©"Robert"Brown"August"2015"@robby_brown
Instagram ©"Robert"Brown"August"2015"@robby_brown
Deckset ©"Robert"Brown"August"2015"@robby_brown
LLVM6 6"LLVM"for"Grad"Students ©"Robert"Brown"August"2015"@robby_brown
Automator ©"Robert"Brown"August"2015"@robby_brown
IFTTT ©"Robert"Brown"August"2015"@robby_brown
Workflow ©"Robert"Brown"August"2015"@robby_brown
Summary 1. The&Problems 2. Architecture&Theory 3. Examples 4. Demo ©"Robert"Brown"August"2015"@robby_brown
One$Final$Thought ©"Robert"Brown"August"2015"@robby_brown
The$Main$Thread$is$a$Singleton! !!"!#!$!% ©"Robert"Brown"August"2015"@robby_brown
Demo ©"Robert"Brown"August"2015"@robby_brown
Ques%ons? ©"Robert"Brown"August"2015"@robby_brown
Resources(to(Learn(More • WWDC%2015%Session%226 • Actor%Model • Communica;ng%Sequen;al%Processes%(CSP) ©"Robert"Brown"August"2015"@robby_brown
In#Depth#Resources • MapReduce • Lambda-Architecture • Reac3ve-Streams • WWDC-2015-Session-408 •
Amdahl's-Law ©"Robert"Brown"August"2015"@robby_brown