select


等待多通道操作 和go函数和通道一起使用。
select.go

package main
import "fmt"
import "time"
  
func main() {
    c := make(chan string)
    c2 := make(chan string)
        
    go func() {
        time.Sleep(time.Second * 3)
        c <- "go language"
    }()
    
    go func() {
        time.Sleep(time.Second * 1)
        c2 <- "c language"
    }()
    
    for i := 0; i < 2; i++ {
        select {
            case str := <-c:
                fmt.Println("1 ", str)
            case str2 := <-c2:
                fmt.Println("2 ", str2)
        }
    }
}


go keyword select