Deep Dive in Go Channels | Michalis Zampetakis
mzampetakis.com · 1,556 words · saved by 1 readers
A brief deep dive in Go Channels with examples and common error cases.
Deep Dive in Go Channels Contents Deep Dive in Go Channels One of the biggest advantages of Go is undoubtedly it’s concurrency management. Goroutines are the main feature that Go uses to achieve this. Goroutines wouldn’t be so easy if there wasn’t for channels. A goroutine is a lightweight thread managed by the Go runtime. Channels are the pipes that connect concurrent goroutines. You can send values into channels from one goroutine and receive those values into another goroutine. How channels work Go provides a simple and straightforward mechanism to manage channels that allows goroutines to
related reading
- Notes on structured concurrency, or: Go statement considered harmful - njs blogvorpus.org
- Transfer Data Between Threads with Message Passing - The Rust Programming Languagedoc.rust-lang.org
- The Go Memory Model - The Go Programming Languagego.dev
- Goroutines - Concurrent Programming in Goprogramiz.com
- Demystifying Function Parameters in Go- Alex Edwardsalexedwards.net
- Data Race Detector - The Go Programming Languagego.dev
- Channels | Tokio - An asynchronous Rust runtimetokio.rs
- sync package - sync - Go Packagespkg.go.dev
- Frequently Asked Questions (FAQ) - The Go Programming Languagego.dev
- Go select (With Examples)programiz.com
- Never start a goroutine without knowing how it will stop | Dave Cheneydave.cheney.net
- Golang landminesgist.github.com