共计 515 个字符,预计需要花费 2 分钟才能阅读完成。
导读 | 在 golang 语言中,select 语句 就是用来监听和 channel 有关的 IO 操作,当 IO 操作发生时,触发相应的 case 动作。有了 select 语句,可以实现 main 主线程 与 goroutine 线程 之间的互动。 |
go 有一个特殊的关键字 select,它允许用户从多个通道中选择一个通道来接收。
package main
import (
"fmt"
"time"
)
func ping1 (c chan string){time.Sleep(time.Second*1)
c
如果先接收到 channel1 就先执行 channel1 分支,如果接收到 channel2,就执行 channel2 分支,如果在规定的时间没有接收到消息,就会执行超时的分支。
程序调用内置的 close 函数关闭了通道,关闭通道并不会导致通道的机能完全停止,他的作用就是通知其他正在尝试从这个通道接收值的 goroutine,这个通道已经不会再接受到任何值了。
case msg, ok1 =
package main
import ("fmt")
func callerA(c chan string) {
c
正文完
星哥说事-微信公众号
![post-qrcode](https://www.xgss.net/wp-content/uploads/2023/07/二维码-微信公众号256x256.jpg)