Go语言中Select语句用法实例
本文实例讲述了Go语言中Select语句用法。分享给大家供大家参考。具体分析如下:
select语句使得一个goroutine在多个通讯操作上等待。
select会阻塞,直到条件分支中的某个可以继续执行,这时就会执行那个条件分支。当多个都准备好的时候,会随机选择一个。
packagemain
import"fmt"
funcfibonacci(c,quitchanint){
x,y:=1,1
for{
select{
casec<-x:
x,y=y,x+y
case<-quit:
fmt.Println("quit")
return
}
}
}
funcmain(){
c:=make(chanint)
quit:=make(chanint)
gofunc(){
fori:=0;i<10;i++{
fmt.Println(<-c)
}
quit<-0
}()
fibonacci(c,quit)
}
默认选择
当select中的其他条件分支都没有准备好的时候,default分支会被执行。
为了非阻塞的发送或者接收,可使用default分支:
select{
casei:=<-c:
//usei
default:
//receivingfromcwouldblock
}
packagemain
import(
"fmt"
"time"
)
funcmain(){
tick:=time.Tick(1e8)
boom:=time.After(5e8)
for{
select{
case<-tick:
fmt.Println("tick.")
case<-boom:
fmt.Println("BOOM!")
return
default:
fmt.Println(" .")
time.Sleep(5e7)
}
}
}
希望本文所述对大家的Go语言程序设计有所帮助。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下