This lecture provides a background on the OS process abstraction. It then introduces the concept of concurrency and concurrent programming. Finally it presents Go's CSP concept using several examples in Go.
- Processes and Threads
- OS Basics
- Synchronization Mechanisms
- Concurrency
- Concurrent Design in Go
- goroutines and channels
- Examples
- Load Balancer
- Query a Replicated Database
- Beyond Single Nodes
- Go Web Programming chapter 9
- Hoare, C. A. R. (1978). "Communicating sequential processes". Communications of the ACM.
- What is the difference (besides the syntax) of the concurrency model presented in Hoare's paper and the one implemented in Go?
- Investigate how the HTTP server in Go is implemented. How does it handle multiple requests?