gpt4 book ai didi

Golang 计时器过期 VS 停止之间的区别?

转载 作者:数据小太阳 更新时间:2023-10-29 03:13:54 27 4
gpt4 key购买 nike

基于此示例 (https://gobyexample.com/timers),计时器可以停止或过期。但是有什么区别呢?

package main
import "time"
import "fmt"

func main() {
timer1 := time.NewTimer(time.Second*2)

<-timer1.C
fmt.Println("Timer 1 expired")

timer2 := time.NewTimer(time.Second)
go func() {
<-timer2.C
fmt.Println("Timer 2 expired")
} ()
stop2 := timer2.Stop()
if stop2 {
fmt.Println("Timer 2 stopped")
}
}

最佳答案

用某个 duration 创建的计时器d(在创建时指定)在此类持续时间过去后到期。这意味着等待持续时间 d 的计时器 channel 将仅在持续时间结束后(甚至可能更晚,具体取决于调度)解除对调用者的阻塞。定时器到期可以被认为是事件触发。

如果在定时器创建后,你想防止它过期(例如因为你不想再等待了),你可以 Stop()定时器。这在使用 AfterFunc() 创建计时器时更有用。 , 以取消预定的函数执行。

关于Golang 计时器过期 VS 停止之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42893500/

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