Lab 02: Select Statement
Overview
Step 1: Basic Select with Multiple Channels
package main
import "fmt"
func main() {
ch1 := make(chan string, 1)
ch2 := make(chan string, 1)
ch1 <- "one"
ch2 <- "two"
for i := 0; i < 2; i++ {
select {
case msg := <-ch1:
fmt.Println("from ch1:", msg)
case msg := <-ch2:
fmt.Println("from ch2:", msg)
}
}
}Step 2: Default Case (Non-blocking)
Step 3: Timeout with time.After
Step 4: Done Channel Pattern
Step 5: context.WithTimeout
Step 6: Select in a Loop (Heartbeat Pattern)
Step 7: Multiplex with Fan-In Using Select
Step 8: Capstone — Rate-Limited Worker
Summary
Concept
Key Points
Last updated
