导读 | 在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原文来自:https://blog.51cto.com/u_3764469/5606042
本文地址:https://www.linuxprobe.com/go-select-js.html编辑:张雄,审核员:逄增宝
Linux命令大全:https://www.linuxcool.com/
Linux系统大全:https://www.linuxdown.com/
红帽认证RHCE考试心得:https://www.rhce.net/
© 版权声明
THE END