select 的用途
select 语句的意思是,分支代码只要有一个能执行,就不会阻塞,否则一直阻塞并去尝试执行别的 goroutine
package main
import "fmt"
func main() {
ch1 := make(chan int)
ch2 := make(chan string)
go func() {
ch1 <- 42
}()
go func() {
ch2 <- "hello"
}()
for i := 0; i < 2; i++ {
select {
case data := <-ch1:
fmt.Println("从ch1收到:", data)
case msg := <-ch2:
fmt.Println("从ch2收到:", msg)
}
}
}