开发者社区> 问答> 正文

go语言的ticker定时器与time sleep有啥区别

以下两份代码,及执行结果

package main

import (
	"fmt"
	"time"
)

func main()  {
	t:=time.NewTicker(2*time.Second)

	for {
		v,ok:= <-t.C
		if ok{
			fmt.Println(v)
			//执行某任务
		}
	}
}

运行结果

2021-10-20 05:08:13.043167 +0800 CST m=+2.003717208
2021-10-20 05:08:15.043263 +0800 CST m=+4.003782483
2021-10-20 05:08:17.04303 +0800 CST m=+6.003520033
2021-10-20 05:08:19.042878 +0800 CST m=+8.003336958
...
package main

import (
	"fmt"
	"time"
)

func main()  {

	for {
		time.Sleep(2*time.Second)
		fmt.Println(time.Now())
	}
}

运行结果

2021-10-20 05:11:10.520733 +0800 CST m=+2.004706789
2021-10-20 05:11:12.521883 +0800 CST m=+4.005826687
2021-10-20 05:11:14.522189 +0800 CST m=+6.006102467
2021-10-20 05:11:16.524366 +0800 CST m=+8.008249485

展开
收起
道月芬1 2021-10-20 05:13:01 1118 0
1 条回答
写回答
取消 提交回答
  • 网络规划设计师、敏捷专家、CISP、ITSS服务经理、ACA全科目、ACP4项、ACE、CBP、CDSP、CZTP等。拥有 PRINCE2 Foundation/Practitioner、CCSK、ITIL、ISO27001、PMP等多项国际认证。 专利5+、期刊10+、知识产权师。核心期刊审稿人。

    您好,ticker只要定义完成,从此刻开始计时,不需要任何其他的操作,每隔固定时间都会触发。使用timer定时器,超时后需要重置,才能继续触发。

    2021-10-20 08:52:24
    赞同 1 展开评论 打赏
问答分类:
Go
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Go语言路上踩过的坑 立即下载
gohbase :HBase go客户端 立即下载
Go构建日请求千亿级微服务实践 立即下载