go语言的ticker定时器与time sleep有啥区别-问答-阿里云开发者社区-阿里云

开发者社区> 睡着了去做梦> 正文

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

2021-10-20 05:13:01 82 1

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

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

Go
取消 提交回答
全部回答(1)
  • 无敌小将
    2021-10-20 08:52:24

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

    1 0
相关问答

1

回答

高效运维最佳实践(03):Redis集群技术及Codis实践

柚子 2015-04-13 15:36:42 33294浏览量 回答数 1

21

回答

33秒后我完全震惊了!

sophi5a 2011-08-04 14:43:24 17292浏览量 回答数 21

15

回答

免费Docker镜像来袭,你造么?

豆妹 2014-11-21 15:49:57 23205浏览量 回答数 15

19

回答

600万女生的共同选择——阿里云助暖暖环球之旅畅通无阻

nono20011908 2014-08-07 18:38:47 27554浏览量 回答数 19

4

回答

kernel:unregister_netdevice: waiting for lo to become free. Usage count = 1

鲁二哥 2016-03-23 23:33:32 35225浏览量 回答数 4

33

回答

活动结束【有奖话题讨论】说说你写代码时踩过的那些坑

西秦说云 2016-06-30 10:05:59 17616浏览量 回答数 33

3

回答

2020年05月编程排行榜-C语言继2015年,重新成为编程排行榜第一名

huc_逆天 2020-05-06 13:43:42 35320浏览量 回答数 3

2

回答

【开源分享】5期 基于 Go 的分布式管理平台 Crawlab

问问小秘 2020-05-07 13:49:42 29573浏览量 回答数 2

4

回答

OSS一键开通CDN和实现域名设置上线完整体验

jack.cai 2015-08-12 10:47:57 17393浏览量 回答数 4

16

回答

Linux系统常用命令大全

2013-05-16 11:07:26 44026浏览量 回答数 16
30
文章
996
问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载