返回顶部
首页 > 资讯 > 精选 >go语言定时器Timer及Ticker怎么使用
  • 457
分享到

go语言定时器Timer及Ticker怎么使用

2023-06-30 02:06:37 457人浏览 安东尼
摘要

本文小编为大家详细介绍“Go语言定时器Timer及Ticker怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“go语言定时器Timer及Ticker怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。定

本文小编为大家详细介绍“Go语言定时器Timer及Ticker怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“go语言定时器Timer及Ticker怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

定时器1-"*/5 * * * * *"

package mainimport ("fmt""GitHub.com/robfig/cron")//主函数func main() {cron2 := cron.New() //创建一个cron实例//执行定时任务(每5秒执行一次)err:= cron2.AddFunc("*/5 * * * * *", print5)if err!=nil{fmt.Println(err)}//启动/关闭cron2.Start()defer cron2.Stop()select {//查询语句,保持程序运行,在这里等同于for{}}}//执行函数func print5()  {fmt.Println("每5s执行一次cron")}

设置说明

 ┌─────────────second 范围 (0 - 60) │ ┌───────────── min (0 - 59) │ │ ┌────────────── hour (0 - 23) │ │ │ ┌─────────────── day of month (1 - 31) │ │ │ │ ┌──────────────── month (1 - 12) │ │ │ │ │ ┌───────────────── day of week (0 - 6) (0 to 6 are Sunday to │ │ │ │ │ │                  Saturday) │ │ │ │ │ │ │ │ │ │ │ │ * * * * * *

星号(*) :表示 cron 表达式能匹配该字段的所有值。如在第5个字段使用星号(month),表示每个月

斜线(/):表示增长间隔,如第2个字段(minutes) 值是 3-59/15,表示每小时的第3分钟开始执行一次,之后 每隔 15 分钟执行一次(即 3(3+0*15)、18(3+1*15)、33(3+2*15)、48(3+3*15) 这些时间点执行),这里也可以表示为:3/15

逗号(,):用于枚举值,如第6个字段值是 MON,WED,FRI,表示 星期一、三、五 执行

连字号(-):表示一个范围,如第3个字段的值为 9-17 表示 9am 到 5pm 直接每个小时(包括9和17)

问号(?):只用于 日(Day of month) 和 星期(Day of week),表示不指定值,可以用于代替 *

定时器2-Timer-Ticker

Timer  //时间到了产生一次事件Ticker  //时间到了循环产生事件

Timer-只执行一次

package mainimport ("fmt""time")func main() {//创建一个定时器,设置时间为2s,2s后,往time通道写内容(当前时间)timer := time.NewTimer(2 * time.Second)fmt.Println("当前时间:", time.Now())//2s后,往timer.C写数据,有数据后,就可以读取t := <-timer.C //channel没有数据前后阻塞fmt.Println("t = ", t)}

Ticker-循环执行

package mainimport ("fmt""time")//验证time.NewTimer(),时间到了,只会响应一次func main() {timer := time.NewTicker(1 * time.Second)for {<-timer.Cfmt.Println("时间到")}}

结果:

时间到
时间到
时间到
时间到

Timer延时功能

time.NewTimer(2 * time.Second)  //相当于time.Sleep(2 * time.Second)func main() {//延时2s后打印一句话timer := time.NewTimer(2 * time.Second)<-timer.Cfmt.Println("时间到")}func main() {<-time.After(2 * time.Second) //定时2s,阻塞2s, 2s后产生一个事件,往channel写内容fmt.Println("时间到")}

停止和重置定时器

ok := timer.Reset(1 * time.Second) //重新设置为1stimer.Stop() //停止定时器

停止:

func main() {timer := time.NewTimer(3 * time.Second)go func() {<-timer.Cfmt.Println("子协程可以打印了,因为定时器的时间到")}()timer.Stop() //停止定时器for {}}

重置:

func main() {timer := time.NewTimer(3 * time.Second)ok := timer.Reset(1 * time.Second) //重新设置为1sfmt.Println("ok = ", ok)<-timer.Cfmt.Println("时间到")}

定时器Ticker使用

package mainimport ("fmt""time")func main() {ticker := time.NewTicker(1 * time.Second)i := 0for {<-ticker.Ci++fmt.Println("i = ", i)if i == 5 {ticker.Stop()break}}}

读到这里,这篇“go语言定时器Timer及Ticker怎么使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: go语言定时器Timer及Ticker怎么使用

本文链接: https://lsjlt.com/news/327170.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • go语言定时器Timer及Ticker怎么使用
    本文小编为大家详细介绍“go语言定时器Timer及Ticker怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“go语言定时器Timer及Ticker怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。定...
    99+
    2023-06-30
  • go语言定时器Timer及Ticker的功能使用示例详解
    目录定时器1-"*/5 * * * * *"设置说明定时器2-Timer-TickerTimer-只执行一次Ticker-循环执行Timer延时功能停止和重置定时...
    99+
    2024-04-02
  • Android定时器Timer怎么使用
    Android定时器Timer可以使用以下步骤:1. 创建一个Timer对象Timer timer = new Timer();2....
    99+
    2023-05-30
    android定时器 android
  • Python定时器Timer怎么使用
    在Python中,可以使用`Timer`类实现定时器功能。`Timer`类位于`threading`模块中,可以创建一个定时器对象,...
    99+
    2023-10-26
    Python
  • Linux中Timer定时器怎么使用
    在Linux中,可以使用timer_create函数创建一个定时器,然后使用timer_settime函数设置定时器的间隔和触发方式...
    99+
    2023-10-26
    Linux
  • Go Ticker 周期性定时器用法及实现原理详解
    目录前言Ticker应用示例创建定时器停止定时器实现原理数据结构runtimeTimer创建Ticker停止TickerTicker 与 Timer 区别小结前言 定时器在Go语言应...
    99+
    2024-04-02
  • java中Timer定时器怎么用
    小编给大家分享一下java中Timer定时器怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Timer定时器的使用和启动1.概述定时计划任务功能在Java中主...
    99+
    2023-06-22
  • 详解Python定时器Timer的使用及示例
    目录1.定时器(1)线程定时器(Timer)解释:(2)Timer 的两种用法:2.队列3.线程池:4.案例1.定时器 Timer定时器源码实现,和自定义一个线程方式一样,都是继承T...
    99+
    2023-05-19
    Python 定时器 Python Timer
  • Android定时器Timer简单使用
    在Android中,可以使用`Timer`类来创建定时器,实现定时执行某个任务的功能。以下是一个简单的使用示例:1. 创建一个`Ti...
    99+
    2023-10-12
    Android
  • boost.asio框架系列之定时器Timer怎么使用
    这篇文章主要介绍“boost.asio框架系列之定时器Timer怎么使用”,在日常操作中,相信很多人在boost.asio框架系列之定时器Timer怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”boo...
    99+
    2023-07-02
  • 如何在Java中使用Timer定时器
    如何在Java中使用Timer定时器?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、概念      定时计划任务功能在J...
    99+
    2023-05-30
    java timer
  • C#四种计时器Timer怎么使用
    这篇文章主要介绍了C#四种计时器Timer怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#四种计时器Timer怎么使用文章都会有所收获,下面我们一起来看看吧。1、System.Threading.Ti...
    99+
    2023-06-30
  • C#中Timer定时器类的简单使用
    目录System.Timers.Timer定时器简单使用设置初始属性简单示例–借用官方示例System.Timers.Timer 定时器就是经过固定时间,执行固定任务。 ...
    99+
    2024-04-02
  • C#中的Timer定时器类如何使用
    本文小编为大家详细介绍“C#中的Timer定时器类如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#中的Timer定时器类如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。System.Timers...
    99+
    2023-06-30
  • 怎么使用Go语言实现时间轮
    本文小编为大家详细介绍“怎么使用Go语言实现时间轮”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Go语言实现时间轮”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。时间轮概述时间轮是一种基于时间概念的循环缓...
    99+
    2023-07-05
  • Go语言变量怎么定义和使用
    这篇“Go语言变量怎么定义和使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Go语言变量怎么定义和使用”文章吧。在Go语言...
    99+
    2023-07-04
  • Go语言函数怎么定义与使用
    今天小编给大家分享一下Go语言函数怎么定义与使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.前言函数是一段代码的片段,...
    99+
    2023-07-04
  • 怎么使用GO语言
    这篇文章主要讲解了“怎么使用GO语言”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用GO语言”吧!什么是 GVMGo 语言版本管理器(GVM)是管理 Go 语言环境的开源工具。GVM ...
    99+
    2023-06-16
  • Go语言go clean的使用及应用
    go 语言的 go clean 命令用于清理构建过程中生成的文件,保持项目目录整洁。选项包括:-i:清除未使用和导出的文档。-r:递归清理项目及其依赖项。命令 go clean -r 可...
    99+
    2024-04-08
    go语言 go clean
  • 在java项目中如何使用Timer定时器
    在java项目中如何使用Timer定时器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。定时的功能我们在手机上见得比较多,比如定时清理垃圾,闹钟,等等.定时功能在...
    99+
    2023-05-31
    java 定时器 timer
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作