当我运行此代码时,我不明白为什么在打印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")
}
}
}
- 1 回答
- 0 关注
- 54 浏览
添加回答
举报
0/150
提交
取消