Episode 2. Concurrency – CSP & Actors
Concurrency – CSP & Actors
Multithreading is not the only approach we use to deal with concurrency. Single-purpose processes is our next frontier. Processes, that don`t have shared state. To coordinate, they pass messages to each other.
We can build complex concurrent systems using simple principles of CSP or Actors model. We break down programs into independent processes, each performing some specific job, talking to each other. How they talk to each is the point of contention here. That`s where the differences between CSP and Actors arise.
Host: Andrey Salomatin twitter.com/filipovskii
“Communicating Sequential Processes” orignial paper by C. A. R. Hoare http://www.usingcsp.com/ cspbook.pdf
- “Go in 5 minutes” screencast by Aaron https://www.youtube.com/channel/UC2GHqYE3fVJMncbrRd8AqcA
- “Effective Go” https://golang.org/doc/effective_go.html
- “Go Concurrency Patterns” talk by Rob Pike https://talks.golang.org/2012/concurrency.slide#1
- net.Context documentation: https://godoc.org/golang.org/x/net/context
WebSockets documentation: https://godoc.org/golang.org/x/net/websocket
“A Universal Modular Actor Formalism for Artificial Intelligence” original paper by Carl Hewitt; Peter Bishop; Richard Steiger http://worrydream.com/refs/Hewitt-ActorModel.pdf
- “Learn You Some Erlang for great good!” by Fred Hébert http://learnyousomeerlang.com/
- “Programming Erlang” by Joe Armstrong http://amzn.to/1UnfJpB
Projects to check out
- Docker https://github.com/docker/docker
- “Awesome Go” – a curated list of awesome Go frameworks, libraries and software https://github. com/avelino/awesome-go
- Cuneiform http://www.cuneiform-lang.org/
PS: Links to Amazon are referral. You can use them to support the show.