发布时间:2024-12-22 20:07:39
作为一个专业的golang开发者,我们在日常开发中经常会遇到需要定时执行或延迟某些操作的场景。这时,
首先,我们需要了解一下
使用
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("Start")
// 延迟3秒后输出当前时间
<-time.After(3 * time.Second)
fmt.Println("Current time:", time.Now())
}
在上面的示例代码中,我们调用了
定时任务是
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("Start")
ticker := time.NewTicker(1 * time.Second)
defer ticker.Stop()
for {
select {
case <-ticker.C:
// 每秒钟执行的操作
fmt.Println("Execute some task...")
}
}
}
在上面的示例中,我们使用`time.NewTicker`创建了一个定时器,然后通过`ticker.C`通道读取到定时器的时间信号。在`select`语句中对该通道进行监听,一旦收到信号,就执行相应的操作。
除了定时任务,
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("Start")
go func() {
<-time.After(3 * time.Second)
fmt.Println("Execute some cleanup task...")
}()
// 主程序继续执行其他任务
time.Sleep(5 * time.Second)
}
在上面的示例中,我们使用`time.After`等待3秒后执行清理任务。为了不阻塞主程序的执行,我们将清理任务放在一个独立的goroutine中,并使用`go`关键字进行并发执行。
通过本文的介绍,我们了解了
希望本文能够帮助到正在学习或使用golang的开发者们,更好地理解和应用