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语言程序设计有所帮助。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短