Go中如何使用select遍历多个通道

   2024-10-25 4350
核心提示:在Go中,可以使用select语句来遍历多个通道。select语句可以同时监听多个通道的操作,并在其中任意一个通道准备就绪时执行

在Go中,可以使用select语句来遍历多个通道。select语句可以同时监听多个通道的操作,并在其中任意一个通道准备就绪时执行相应的操作。

下面是一个使用select语句遍历多个通道的示例:

package mainimport (    "fmt")func main() {    // 创建两个通道    ch1 := make(chan int)    ch2 := make(chan int)    // 向第一个通道发送数据    go func() {        for i := 0; i < 5; i++ {            ch1 <- i        }        close(ch1)    }()    // 向第二个通道发送数据    go func() {        for i := 100; i < 105; i++ {            ch2 <- i        }        close(ch2)    }()    // 遍历多个通道    for {        select {        case v, ok := <-ch1:            if !ok {                ch1 = nil            } else {                fmt.Println("From ch1:", v)            }        case v, ok := <-ch2:            if !ok {                ch2 = nil            } else {                fmt.Println("From ch2:", v)            }        }        // 判断所有通道是否已关闭        if ch1 == nil && ch2 == nil {            break        }    }}

在上面的示例中,我们创建了两个通道ch1ch2,并向每个通道发送一些数据。然后使用select语句遍历这两个通道,当其中任意一个通道准备就绪时,我们就从该通道中读取数据并打印出来,直到所有通道都关闭为止。

 
举报打赏
 
更多>同类网点查询
推荐图文
推荐网点查询
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号