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
1
60
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
70
Elixir
robbrown
1
220
MVVM
robbrown
3
250
Reactive Cocoa
robbrown
2
140
UIKit Dynamics
robbrown
0
69
iOS State Preservation and Restoration
robbrown
5
740
Anti-Patterns
robbrown
3
120
Core Animation: Beyond the Basics
robbrown
1
86
Pragmatic Blocks
robbrown
3
91
Other Decks in Programming
See All in Programming
プロパティベーステストによるUIテスト: LLMによるプロパティ定義生成でエッジケースを捉える
tetta_pdnt
0
300
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
270
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
430
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
830
知っているようで知らない"rails new"の世界 / The World of "rails new" You Think You Know but Don't
luccafort
PRO
1
100
Cache Me If You Can
ryunen344
1
620
請來的 AI Agent 同事們在寫程式時,怎麼用 pytest 去除各種幻想與盲點
keitheis
0
110
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
320
開発チーム・開発組織の設計改善スキルの向上
masuda220
PRO
19
11k
Tool Catalog Agent for Bedrock AgentCore Gateway
licux
6
2.3k
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
21
5.6k
rage against annotate_predecessor
junk0612
0
160
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Balancing Empowerment & Direction
lara
3
620
Become a Pro
speakerdeck
PRO
29
5.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Done Done
chrislema
185
16k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
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