package main import ( "fmt" ) func main() { ch := make(chan int) ch2 := make(chan int) go func() { for i := 0; i < 5; i++ { ch <- i } close(ch) }() go func() { for i := 0; i < 5; i++ { ch2 <- i } close(ch2) }() loop: for { select { case val, ok := <-ch: if ok { fmt.Println("[ch] Received value:", val) } else { fmt.Println("[ch] Channel closed") ch = nil } case val, ok := <-ch2: if ok { fmt.Println("[ch2] Received value:", val) } else { fmt.Println("[ch2] Channel closed") ch2 = nil } default: if ch == nil && ch2 == nil { break loop } } } fmt.Println("🔴 end program...") }