Skip to content

Wrap Up

Johnny Boursiquot edited this page May 31, 2024 · 1 revision

What you learned

In this training you learned how to use concurrency primitives (goroutines, channels, mutexes), including how to synchronize access to shared resources. You also learned a few concurrency patterns, including worker pools, semaphores, pipelines, and fan-out/fan-in.

A key theme here has been understanding that though powerful and cheap to implement in Go, concurrency can be a double-edged sword if not constrained when they need to be. Understanding the constraints under which your programs will operate is critical to writing production grade software in Go.

Some parting resources to check out:

  1. Concurrency is not Parallelism by Rob Pike
  2. Google I/O 2012 - Go Concurrency Patterns
  3. Origins of Go Concurrency style by Rob Pike
Clone this wiki locally