go 语言 select

21 阅读1分钟

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)
        }
    }
}