Golang time.Sleep()函数及示例

介绍

time.Sleep()

格式

time.Sleep()
func Sleep(d Duration)

其中,参数d为时间段数值,单位为纳秒。Duration是Go标准库定义的一个类型,声明如下:

type Duration int64

它代表一段时间间隔(以纳秒为单位),可以是负数或正数,可以超出int64数值类型的范围。我们可以使用常量或运算表达式创建Duration类型的变量。

示例

time.Sleep()

示例1:休息5秒钟

package main

import (
    "fmt"
    "time"
)

func main() {
    start := time.Now()
    fmt.Println("开始休息:", start)

    time.Sleep(5 * time.Second)

    end := time.Now()
    fmt.Println("休息结束:", end)
    fmt.Println("休息了", end.Sub(start))
}
time.Now()time.Sleep(5 * time.Second)time.Now()
开始休息: 2021-08-01 15:04:47.904051 +0800 CST m=+0.000252598
休息结束: 2021-08-01 15:04:52.904587 +0800 CST m=+5.000789245
休息了 5s
time.SecondDurationtime.Sleep()5 * time.Second

示例2:阻塞主线程

package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Println("开始")

    time.Sleep(10)

    fmt.Println("结束")
}
time.Sleep()
开始
结束
10

示例3:定时器

package main

import (
    "fmt"
    "time"
)

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

    <-timer1.C

    fmt.Println("Timer 1 expired")
}
time.NewTimer()timer1.CTimer 1 expired