为了账号安全,请及时绑定邮箱和手机立即绑定

继续默认为什么其他案例没有被打印出来

继续默认为什么其他案例没有被打印出来

Go
繁星点点滴滴 2022-08-24 10:57:53
当我运行此代码时,我不明白为什么在打印X后它不打印其他情况。我希望我应该看到X打印出来三秒钟,然后最后从server2package mainfunc server1(ch chan string) {    time.Sleep(6 * time.Second)    ch <- "from server1"}func server2(ch chan string) {    time.Sleep(3 * time.Second)    ch <- "from server2"}func main() {    output1 := make(chan string)    output2 := make(chan string)    go server1(output1)    go server2(output2)    select {    case s1 := <-output1:        fmt.Println(s1)    case s2 := <-output2:        fmt.Println(s2)    default:        fmt.Println(“X”)    }}
查看完整描述

1 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

func main() {

    output1 := make(chan string)

    output2 := make(chan string)

    go server1(output1)

    go server2(output2)

    for {

        select {

        case s1 := <-output1:

            fmt.Println(s1)

        case s2 := <-output2:

            fmt.Println(s2)

        default: // todo: return

            fmt.Println("X")

        }

    }

}


查看完整回答
反对 回复 2022-08-24
  • 1 回答
  • 0 关注
  • 54 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信