Learning path

Go concurrency

Goroutines, channels, select, Mutex, worker pools and context.

6 lessons · 6 challenges

  1. Lesson 1 challenge Goroutines and WaitGroup Start lightweight threads with go and wait for them with sync.WaitGroup.
  2. Lesson 1 challenge Channels Send values between goroutines with channels, buffered and unbuffered.
  3. Lesson 1 challenge Select and Timeouts Wait on several channels at once and stop waiting after a timeout.
  4. Lesson 1 challenge Mutex: Protecting Shared Data Let several goroutines change one value safely with sync.Mutex.
  5. Lesson 1 challenge Worker Pool Share a queue of jobs between a fixed number of goroutines.
  6. Lesson 1 challenge Context: Cancellation and Deadlines Stop work that takes too long or is no longer needed with context.