Phase 5Days 21-25

Concurrency, Channels & Context

Goroutines, synchronization, cancellation, ownership, and race-free design

Phase Goal

Build concurrent programs whose lifetime, ownership, and failure behavior are explicit.

Progress

Day 21: Goroutines & Lifecycle Ownership

Day 22: Channels & Communication Protocols

Day 23: select, Timeouts & Cancellation

Day 24: Mutexes, Atomics & Race-Free State

Day 25: Mini Project — Parallel Archive Verifier

Capstone
Parallel Archive Verifier

Verify thousands of research-archive files against a catalog with bounded parallel hashing, cancellation, progress events, and deterministic mismatch output.

  • Worker pool with measurable backpressure
  • Prompt cancellation with partial-result accounting
  • Race-detector-clean and goroutine-leak tests

Phase Complete!

After this phase, you'll be able to:

  • Concurrency versus parallelism
  • Starting goroutines and scheduler intuition
  • Goroutine lifetime, leaks, and ownership
  • WaitGroup and the add-before-go rule
  • Unbuffered channel synchronization
  • Buffered channels and backpressure
  • Closing, ranging, direction types, and ownership
  • Deadlocks, blocked sends, and protocol diagrams

You can apply Phase 5 skills in a finished, explainable Go project.