首页
学习
活动
专区
圈层
工具
发布

【Go 语言社区】Golang语言的time.Sleep

首先:time.sleep单位为:1ns (纳秒)

转换单位:

1纳秒 =1000皮秒 1纳秒 =0.001 微秒 1纳秒 =0.000 001毫秒   1纳秒 =0.000 000 001秒

写无限循环代码的时候老是担心 time.sleep时间过短或者过长的影响 于是乎就测试了下

结果终于安心了,原来这是有瓶颈的。

贴代码:

package main

import(

"fmt"

"time"

)

func main(){

fmt.Println(int(time.Second))

forNum:=10000

test1(1000000,forNum)

test1(1000,forNum)

test1(1,forNum)

}

func test1(sleepTime time.Duration,num int){

i:=0

t := time.Now()

for{

i++

if i>=num{

fmt.Println("forNum:",num," sleep:",sleepTime," use:",time.Now().Sub(t).String())

break

}

time.Sleep(sleepTime)

}

}

运行结果:

1000000000 forNum: 10000 sleep: 1ms use: 13.6380121s forNum: 10000 sleep: 1µs use: 13.421951s forNum: 10000 sleep: 1ns use: 13.4345272s 成功: 进程退出代码 0.

sleep会让你逻辑的运算变慢 但是降低CPU消耗

如果不进行sleep CPU消耗会上去,但是运算速度超快,可以把sleep注释掉看看

基本 时间成本忽略不计。

所以sleep的使用 应该是策略性的。

本文固定链接: http://www.4yue.net/post-156.html

下一篇
举报
领券