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
Rob Brown
August 20, 2015
Programming
70
1
Share
High-level Concurrency
Learn about how the actor model can hide and manage the complexities of concurrent programs.
Rob Brown
August 20, 2015
More Decks by Rob Brown
See All by Rob Brown
Data Source Combinators
robbrown
2
81
Elixir
robbrown
1
240
MVVM
robbrown
3
270
Reactive Cocoa
robbrown
2
160
UIKit Dynamics
robbrown
0
83
iOS State Preservation and Restoration
robbrown
5
760
Anti-Patterns
robbrown
3
130
Core Animation: Beyond the Basics
robbrown
1
110
Pragmatic Blocks
robbrown
3
120
Other Decks in Programming
See All in Programming
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
1.3k
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
3.6k
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.5k
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
220
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
310
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
2
310
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
150
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.2k
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
1
610
権限チェックの一貫性を型で守る TypeScript による多層防御
mnch
4
1.1k
LLM Plugin for Node-REDの利用方法と開発について
404background
0
160
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
1
430
Featured
See All Featured
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
310
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
New Earth Scene 8
popppiees
3
2.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Un-Boring Meetings
codingconduct
0
310
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Building the Perfect Custom Keyboard
takai
2
780
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