In the land of Gophers from age 3
summary
Introduces Go concurrency: goroutines communicate via channels rather than locks, showing a concrete pipeline using a buffered channel (make(chan T, 10)) and using select with default to avoid blocking. Explains sync.WaitGroup with WaitGroup.Add(5)/Done(), closing channels, and gives illustrative examples (exchanging candies/kisses and a working cannon) plus surprising facts: goroutine stacks can grow up to ~1 GB and the scheduler multiplexes many goroutines onto a few OS threads.
AI-written summary · about
chapters (10)
- 0:00Welcome to Gopherland
- 1:35Goroutine birth
- 3:40Goroutine sizes
- 5:09Candy exchange without locks
- 7:19Goroutines share CPU
- 8:44Teamwork with WaitGroup
- 10:15Colorful pipeline
- 12:29Selecting channels
- 13:56Deadlocks with Select
- 14:38Runtime multiplexing
related talks
16mIn the Land of Gophers (from Age 3)
24mMastering Concurrency in Go: From Patterns to Production
26mConcurrency primitives of Golang - how to use and how not to
22mTales of Go Runtime Scheduler
40mDebugging concurrency programs in Go
35mGoroutines: the dark side of the runtime
31mGo: Code that Grows with Grace
34mGo concurrency in the real world
