介绍
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