源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Go语言中Select语句用法实例

  • 时间:2021-11-20 11:30 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Go语言中Select语句用法实例
本文实例讲述了Go语言中Select语句用法。分享给大家供大家参考。具体分析如下: select 语句使得一个 goroutine 在多个通讯操作上等待。 select 会阻塞,直到条件分支中的某个可以继续执行,这时就会执行那个条件分支。当多个都准备好的时候,会随机选择一个。
[u]复制代码[/u] 代码如下:
package main import "fmt" func fibonacci(c, quit chan int) {         x, y := 1, 1         for {                 select {                 case c <- x:                           x, y = y, x + y                 case <-quit:    fmt.Println("quit")                         return                 }         } } func main() {         c := make(chan int)  quit := make(chan int)  go func() {   for i := 0; i < 10; i++ {    fmt.Println(<-c)   }   quit <- 0  }()  fibonacci(c, quit) }
默认选择 当 select 中的其他条件分支都没有准备好的时候,default 分支会被执行。 为了非阻塞的发送或者接收,可使用 default 分支: select { case i := <-c: // use i default: // receiving from c would block }
[u]复制代码[/u] 代码如下:
package main import (  "fmt"  "time" ) func main() {         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语言程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部