Go - Goroutines & Channels

Beginner 10/10 Teacher 10/10 Architect 10/10

Goroutines

go func(){
  // runs concurrently
}()

Channels

ch := make(chan int)
go func(){ ch <- 42 }()
v := <-ch // 42
close(ch)

Buffered Channels

ch := make(chan string, 2)
ch <- "a"; ch <- "b"

Guidelines

  • Prefer ownership or message passing to avoid data races.
  • Use context.Context for cancellation.
  • Detect leaks: make sure goroutines can exit.