High level concurrency
-
Upload
robert-brown -
Category
Software
-
view
341 -
download
0
Transcript of High level concurrency
-
High%level)Concurrency
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Overview
1. The&Problems
2. Architecture&Theory
3. Examples
4. Demo
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
The$Problems
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Atomicity
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Nondeterminism
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Race%Condi+ons
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Mutual&Exclusion
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Dead%lock
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
The$list$goes$on...
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Keeping'track'of'so'much'informa3on'is'hard
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Computers*are*good*at*tracking*lots*of*informa4on
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
We#write#code#that#tests#code.
We#write#code#that#generates#code.
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Let's&use&a&system&that&lets&the&computer&manage&concurrency
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Architecture)Theory
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Actor&Model
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
A"universal"primi.ve"of"concurrent"computa.on."Defini(on"of"an"Actor1
1"Wikipedia
"Robert"Brown"August"2015"@robby_brown
https://en.wikipedia.org/wiki/Actor_modelhttps://twitter.com/robby_brown
-
[T]he&problem&with&[OOP]&languages&is&theyve&got&all&this&implicit&
environment&that&they&carry&around&with&them."Joe"Armstrong3
3"Coder's"at"Work
"Robert"Brown"August"2015"@robby_brown
http://www.amazon.com/gp/product/1430219483https://twitter.com/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
http://www.amazon.com/gp/product/1430219483https://twitter.com/robby_brown
-
I'm$sorry$that$I$long$ago$coined$theterm$"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
http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.htmlhttps://twitter.com/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
http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.htmlhttps://twitter.com/robby_brown
-
Protocol'oriented,programming,focuses,on,interac4ons,rather,than,
object,hierarchies.See#WWDC#2015#Session#408
"Robert"Brown"August"2015"@robby_brown
https://developer.apple.com/videos/wwdc/2015/?id=408https://twitter.com/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
https://en.wikipedia.org/wiki/Actor_modelhttps://twitter.com/robby_brown
-
Warning:(Flow(Charts(Ahead5
5"XKCD"518
"Robert"Brown"August"2015"@robby_brown
https://xkcd.com/518/https://twitter.com/robby_brown
-
Typical(Actor(Flow
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
ExampleYour%Code%as%a%Crime%Scene
"Robert"Brown"August"2015"@robby_brown
https://pragprog.com/book/atcrime/your-code-as-a-crime-scenehttps://twitter.com/robby_brown
-
Sequen&al)Processing
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Concurrent)Processing
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Parallel&Processing
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Monad&Binding
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Two$level(Aggrega-on
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Interchangable,Parts
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Other&Examples
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Instagram
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Deckset
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
LLVM6
6"LLVM"for"Grad"Students
"Robert"Brown"August"2015"@robby_brown
http://adriansampson.net/blog/llvm.htmlhttps://twitter.com/robby_brown
-
Automator
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
IFTTT
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Workflow
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Summary
1. The&Problems
2. Architecture&Theory
3. Examples
4. Demo
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
One$Final$Thought
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
The$Main$Thread$is$a$Singleton!
!!"!#!$!%
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Demo
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Ques%ons?
"Robert"Brown"August"2015"@robby_brown
https://twitter.com/robby_brown
-
Resources(to(Learn(More WWDC%2015%Session%226
Actor%Model
Communica;ng%Sequen;al%Processes%(CSP)
"Robert"Brown"August"2015"@robby_brown
https://developer.apple.com/videos/wwdc/2015/?id=226https://en.wikipedia.org/wiki/Actor_modelhttps://en.wikipedia.org/wiki/Communicating_sequential_processeshttps://twitter.com/robby_brown
-
In#Depth#Resources MapReduce
Lambda-Architecture
Reac3ve-Streams
WWDC-2015-Session-408
Amdahl's-Law
"Robert"Brown"August"2015"@robby_brown
https://en.wikipedia.org/wiki/MapReducehttps://en.wikipedia.org/wiki/Lambda_architecturehttp://www.reactive-streams.orghttps://developer.apple.com/videos/wwdc/2015/?id=408https://en.wikipedia.org/wiki/Amdahl%27s_lawhttps://twitter.com/robby_brown