账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    求教golang中 for循环的一个问题?
    27
    0
    package main
    
    import (
        "time"
        "fmt"
        "sync"
    )
    
    func main() {
        var wg sync.WaitGroup
    
        mc := make(chan int)
        go func(mcc chan int, wgg sync.WaitGroup){
            wgg.Add(+1)
            defer wgg.Done()
            time.Sleep(10 * time.Second)
            mcc <- 5
        }(mc, wg)
        wg.Wait()
    
        for {
            fmt.Println("loop")
            time.Sleep(1000 * time.Millisecond)
            select{
            case data := <- mc:
                fmt.Println(data)
                break
            default:
                continue
            }
        }
    }

    初学go,看了语法实践了一下,应该是理解有误。创建一个go协程,10秒后向管道中输入一个数值,然后下面循环,如果从管道中获取到数据则break。但为何运行后,到第10秒打印出数字5之后仍然每秒打印一次loop?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部