github.com/traefik/yaegi@v0.15.1/_test/select.go (about) 1 package main 2 3 import "time" 4 import "fmt" 5 6 func main() { 7 c1 := make(chan string) 8 c2 := make(chan string) 9 10 go func() { 11 time.Sleep(1e9) 12 c1 <- "one" 13 }() 14 go func() { 15 time.Sleep(2e9) 16 c2 <- "two" 17 }() 18 19 for i := 0; i < 2; i++ { 20 fmt.Println("start for") 21 select { 22 case msg1 := <-c1: 23 fmt.Println("received", msg1) 24 fmt.Println("finish 1") 25 case msg2 := <-c2: 26 fmt.Println("received #2", msg2) 27 } 28 fmt.Println("end for") 29 } 30 fmt.Println("Bye") 31 }