前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Go 语言社区】Golang语言的time.Sleep

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

作者头像
李海彬
发布2018-03-20 13:47:52
3.9K0
发布2018-03-20 13:47:52
举报
文章被收录于专栏:Golang语言社区

首先: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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档