这篇文章将为大家详细讲解有关Go语言如何延迟代码执行若干秒和纳秒,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
Go 语言延迟代码执行
使用 time.Sleep() 延迟若干秒
import "time"
func main() {
// 延迟 5 秒
time.Sleep(5 * time.Second)
// 延迟 10 秒
time.Sleep(10 * time.Second)
}
使用 time.After() 延迟若干秒
import (
"context"
"time"
)
func main() {
// 延迟 5 秒
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
<-ctx.Done()
// 延迟 10 秒
ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
<-ctx.Done()
}
使用 time.NewTicker() 延迟若干秒
import "time"
func main() {
// 创建一个 Ticker,每 5 秒触发一次
ticker := time.NewTicker(5 * time.Second)
defer ticker.Stop()
// 每当 Ticker 触发时,执行代码
for range ticker.C {
fmt.Println("5 seconds have passed")
}
}
使用 time.NewTimer() 延迟若干秒
import "time"
func main() {
// 创建一个 Timer,一次性触发
timer := time.NewTimer(5 * time.Second)
// 等待 Timer 触发
<-timer.C
// 执行代码
fmt.Println("5 seconds have passed")
}
使用 time.Now().Add() 延迟若干纳秒
import "time"
func main() {
// 获取当前时间
now := time.Now()
// 创建一个延迟 5 纳秒的 Duration
duration := 5 * time.Nanosecond
// 计算延迟后的时间
future := now.Add(duration)
// 阻塞直到延迟时间结束
time.Sleep(future.Sub(now))
// 执行代码
fmt.Println("5 nanoseconds have passed")
}
使用 time.AfterFunc() 延迟若干纳秒
import (
"context"
"time"
)
func main() {
// 创建一个上下文,在 5 纳秒后取消
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Nanosecond)
defer cancel()
// 创建一个在上下文取消时执行的函数
fun := func() {
fmt.Println("5 nanoseconds have passed")
}
// 使用 AfterFunc 延迟执行函数
time.AfterFunc(duration, fun)
// 等待上下文取消
<-ctx.Done()
}
以上就是Go语言如何延迟代码执行若干秒和纳秒的详细内容,更多请关注编程学习网其它相关文章!