go語言實現 timer(duration time.Duration)
时间: 2024-10-20 12:03:33 浏览: 49
在 Go 语言中,你可以使用 `time.NewTimer()` 函数创建一个定时器,这个函数接受一个 `time.Duration` 类型的参数来设置计时器的延迟时间。下面是一个基本的例子,展示了如何创建并使用一个定时器:
```go
package main
import (
"fmt"
"time"
)
func main() {
duration := 5 * time.Second // 设置定时器延长时间为5秒
t := time.NewTimer(duration) // 创建一个新的定时器
// 开始定时器,然后立即进入下一个循环
select {
case <-t.C: // 当定时器到达设定的时间点时,从通道读取值
fmt.Println("定时器超时了")
case <-time.After(1 * time.Second): // 如果在这1秒内定时器还未超时,我们等1秒再检查一次
fmt.Println("定时器未超时,仍在等待...")
}
// 可以选择在这里停止或取消定时器,如果需要的话
// t.Stop()
// 通常情况下,Go程序会在退出时自动关闭定时器,但这不是强制性的
}
```
上述代码中,我们使用了 `select` 来处理定时器事件,因为 `time.After` 和 `t.C` 都是无阻塞的操作。如果定时器还未超时,我们会等待1秒后再检查。如果你希望在某个特定条件满足后停止定时器,可以调用 `t.Stop()` 来手动取消。
阅读全文
相关推荐









