This mini-book provides a brief overview of many concurrency topics in Go. Each topic comes with interactive examples β feel free to experiment with them by changing the code and clicking Run . There's also a PDF version with static examples. This is a quick refresher on Go concurrency, not a beginner's guide. If you want to learn concurrency from the ground up with practical exercises, check out my other book β Gist of Go: Concurrency . The book is AI-free. Goroutines β’ Channels β’ Select β’ Pipelines β’ Time β’ Context β’ Wait groups β’ Data races β’ Race conditions β’ Mutexes β’ Semaphores β’ Signaling β’ Run once β’ Object pool β’ Atomics β’ Testing β’ Scheduling β’ Diagnostics β’ Final thoughts # Goroutines The foundation of concurrency in Go is goroutines β functions started with the go keyword: func main () { var wg sync . WaitGroup wg . Add ( 2 ) go func () { defer wg . Done () fmt .β¦