searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Golang定时器(一)

2023-09-20 11:22:05
2
0

Golang定时器是我们在程序开发中经常会用到的技术,但是关于定时器的使用其实有很多需要注意的地方,比较容易踩坑

 

一、常见的几种定时器实现

1、Tick

time.Tick返回一个chan Time通道,通过chan来实现最简单的定时器功能

func Timer() {
	duration := time.Second
	for next := range time.Tick(duration) {
		fmt.Println(next)
	}
}

 

2、Ticker

func Timer() {
	duration := time.Second
	ticker := time.NewTicker(duration)
	for next := range ticker.C {
		fmt.Println(next)
	}
}

 

3、Timer

Timer严格来说不算是可循环的定时器,它更像是一个一次性的定时器,但是它提供了一个Reset方法来重置这个一次性定时器的时间,通过手动地调用Reset方法可以实现循环定时器地效果

func Timer() {
	duration := time.Second
	timer := time.NewTimer(duration)
	for next := range timer.C {
		fmt.Println(next)
		timer.Reset(duration)
	}
}

 

0条评论
0 / 1000
李****瑛
5文章数
0粉丝数
李****瑛
5 文章 | 0 粉丝
李****瑛
5文章数
0粉丝数
李****瑛
5 文章 | 0 粉丝
原创

Golang定时器(一)

2023-09-20 11:22:05
2
0

Golang定时器是我们在程序开发中经常会用到的技术,但是关于定时器的使用其实有很多需要注意的地方,比较容易踩坑

 

一、常见的几种定时器实现

1、Tick

time.Tick返回一个chan Time通道,通过chan来实现最简单的定时器功能

func Timer() {
	duration := time.Second
	for next := range time.Tick(duration) {
		fmt.Println(next)
	}
}

 

2、Ticker

func Timer() {
	duration := time.Second
	ticker := time.NewTicker(duration)
	for next := range ticker.C {
		fmt.Println(next)
	}
}

 

3、Timer

Timer严格来说不算是可循环的定时器,它更像是一个一次性的定时器,但是它提供了一个Reset方法来重置这个一次性定时器的时间,通过手动地调用Reset方法可以实现循环定时器地效果

func Timer() {
	duration := time.Second
	timer := time.NewTimer(duration)
	for next := range timer.C {
		fmt.Println(next)
		timer.Reset(duration)
	}
}

 

文章来自个人专栏
Golang语言
3 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0