gpt4 book ai didi

go - time.after和time.Tick在go-tour中如何在default-selection.go中工作?

转载 作者:行者123 更新时间:2023-12-01 22:42:28 26 4
gpt4 key购买 nike

package main
import(
"fmt"
"time"
)
func main(){
tick := time.Tick(100 * time.Millisecond)
boom := time.After(500 * time.Millisecond)
for {
select{
case <-tick:
fmt.Println("tick")
case <-boom:
fmt.Println("BOOM!")
return
default:
fmt.Println(" .")
time.Sleep(50 * time.Millisecond)
}
}
}

有人可以一步一步解释代码的执行吗?
https://tour.golang.org/concurrency/6

最佳答案

select 一次只能处理1个案例,它将一个接一个地处理案例(感谢@Flimzy进行更正)。

tick.Tick()将每100毫秒发送一次信号,而时间。After()将在500毫秒后发送信号。

这意味着当 tick() after()没有信号时, select 将响应默认情况。

关于go - time.after和time.Tick在go-tour中如何在default-selection.go中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61159297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com