golang for range time.Ticker 和 time.Timer时间通道使用示例 - 每隔指定时间执行一次,执行指定时长后退出执行

golang中的 ticker和timer时间通道除了可以使用for select case语句来执行外, 还可以使用 for range语句来执行ticker或者timer时间通道。

 for range time.Ticker 和 time.Timer时间通道使用示例

下面的示例演示了time.Ticker 和 time.Timer的区别和使用演示。

Ticker时间续断器 每隔2秒打印一次当前时间,打印60秒后退出程序; time.Timer定时器设定在10秒钟后执行一次输出 “时间到了+当前时间”

package mainimport ("fmt""time"
)func main() {// 时间续断器 每隔2秒钟执行一次ticker := time.NewTicker(2 * time.Second)// 定时器 在10秒钟后执行timer := time.NewTimer(10 * time.Second)// 另外启动一个协程来执行定时器逻辑  注意这里的协程会在主线程退出时退出!go func() {for t := range timer.C {fmt.Println(" 时间到了: " + t.Format(time.DateTime))}}()start := time.Now() // 开始时间,这个用来中断续断器// 这里的for语句会阻塞当前进程for nextTs := range ticker.C {fmt.Printf("%v \n", nextTs.Format(time.DateTime))// 执行60秒后退出if time.Since(start) >= 60*time.Second {// 停止续断器 注意,这个不会关闭通过,仅会停止向通道发送数据, 所以如果不break退出循环,则在下次range的时候会panic异常.ticker.Stop()break // 退出for range循环}}fmt.Println("------end-------") // 这个代码在退出for range循环后才会被执行
}

Ticker与Timer 区别图示

for select case Ticker Timer 使用示例参考: golang for select { case } 语句 time.Ticker每隔指定时间间隔就执行一次;time.Timer在指定的时间之后执行一次,Ticker和Timer的区别和用法总结-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/395965.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA分布式CAP原则

分布式CAP原则主要是使用SpringCloud框架的时候会涉及到该部分知识点 CAP原则指的是在一个分布式系统中,一致性,可用性,分区容错性 实际的项目开发中,这三者往往是不可兼顾的。 AP:牺牲一致性,保证可用性…

【学习笔记】Matlab和python双语言的学习(动态规划)

文章目录 前言一、动态规划动态规划的基本步骤示例1示例2 三、代码实现----Matlab1.示例12.示例2 四、代码实现----python1.示例12.示例2 总结 前言 通过模型算法,熟练对Matlab和python的应用。 学习视频链接: https://www.bilibili.com/video/BV1EK411…

Linux驱动开发—平台总线模型详解

文章目录 1.平台总线介绍1.1平台总线模型的组成部分1.2平台总线模型的优势 2.使用平台总线模型开发驱动2.1注册platform设备2.2注册platform驱动2.3效果演示 1.平台总线介绍 Linux 平台总线模型(Platform Bus Model)是一种设备驱动框架,用于…

Debezium报错处理系列之第116篇:Caused by: java.lang.NumberFormatException: null

Debezium报错处理系列之第116篇:Caused by: java.lang.NumberFormatException: null 一、完整报错二、错误原因三、解决方法Debezium从入门到精通系列之:研究Debezium技术遇到的各种错误解决方法汇总: Debezium从入门到精通系列之:百篇系列文章汇总之研究Debezium技术遇到的…

【从零开始一步步学习VSOA开发】VSOA命令行工具vcl

VSOA命令行工具vcl 介绍 vcl 是一个 VSOA 命令监听器,支持订阅来自特定服务器发布的所有数据。 [rootsylixos:/root]# [rootsylixos:/root]# vcl -help USAGE: vcl [options] host [topics] -h : Show help message. -v : Show vcl version. …

平安城市行业无人机解决方案(网格化巡逻场景应用)

场景痛点: 缺少飞手,导致无人机应用频次偏低 无人机需要人工换电池、维护及存储 日常巡逻 | 无人机补盲巡逻 大疆航点飞行功能,重复性任务只飞一遍,后续重复调用 无人机航点规划,一次设置,后续重复调用…

SpringBoot + RabbitMQ + WebSocket + STOMP 协议 + Vue 实现简单的实时在线聊天案例

1. 什么是WebSocket? WebSocket是一种在单个TCP连接上进行全双工通信的协议。它允许客户端和服务器之间的实时、双向数据传输。与传统的HTTP请求/响应模型相比,WebSocket更加高效,因为它在初次握手后,连接保持打开状态&#xff0…

前端(HTML + CSS)小兔鲜儿项目(仿)

前言 这是一个简单的商城网站,代码部分为HTML CSS 和少量JS代码 项目总览 一、头部区域 头部的 购物车 和 手机 用的是 文字图标,所以效果可以和文字一样 购物车右上角用的是绝对定位 logo用的是 h1 标签,用来提高网站搜索排名 二、banne…

Golang | Leetcode Golang题解之第331题验证二叉树的前序序列化

题目&#xff1a; 题解&#xff1a; func isValidSerialization(preorder string) bool {n : len(preorder)slots : 1for i : 0; i < n; {if slots 0 {return false}if preorder[i] , {i} else if preorder[i] # {slots--i} else {// 读一个数字for i < n &&…

各种高端链游 区块链游戏 休闲小游戏DAPP开发

【西游闯关】-高端区块链3D手游 【我朝有马】-高端区块链3D手游 【弹弹岛2】-高端区块链3D手游

FPGA第4篇,中国FPGA芯片市场,发展分析与报告

前言 FPGA&#xff08;Field-Programmable Gate Array&#xff09;&#xff0c;即现场可编程门阵列&#xff0c;是一种可由用户配置的集成电路&#xff0c;具有高度的灵活性和强大的计算能力&#xff0c;被广泛应用于通信、航空航天、汽车电子、消费电子、数据中心、人工智能等…

Java毕业设计-基于SSM框架的舞蹈网站系统项目实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

【mysql 第四篇章】bin log 的作用是啥呢?

一、redo Log 介绍 redo log 是一种偏向物理性质的重做日志&#xff0c;因为他里面记录类似的这样的东西&#xff0c;“对那个数据也中的什么记录&#xff0c;做了个什么修改”。它是 InnoDB 存储引擎特有的东西。 二、bin Log 日志 bin log 叫做归档日志&#xff0c;它里面…

STM32-USART时序与寄存器状态分析

一、时序分析 在UART&#xff08;通用异步收发传输&#xff09;通信中&#xff0c;信号线上的状态分为两种&#xff1a;逻辑1&#xff08;高电平&#xff09;和逻辑0&#xff08;低电平&#xff09;。在空闲状态下&#xff0c;数据线应保持逻辑高电平。UART协议中的各个信号位具…

使用frp内网穿透将个人主机上的MySQL发布到公网上,再通过python管理MySQL

目录 1.frp内网穿透部署 1.frp服务器 1.开放端口 2.上传软件包 3.解压 4.配置文件 2.frp客户端 1.上传软件包 2.配置文件 3.启动测试 1.浏览器查看服务器上连接的客户端数量 2.启动测试 2.MySQL安装 3.python3的安装使用 4.python管理MySQL 1.pip 2.pandas 3.p…

uniapp2【搬代码】

我们预期想要的效果: 步骤; 1.创建项目&#xff1a;填写项目名称 2.重新选择项目保存的目录 3.点击确定 4.将图标倒入static中 5.在pages中创建vue如图所示 6.vue创建成功后&#xff0c;在pages.json中进行配置tabBar "tabBar": {"color": "#999&q…

基于Jeecgboot3.6.3的vue3版本的流程中仿钉钉流程的鼠标拖动功能支持

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、因为原先仿钉钉流程里不能进行鼠标拖动来查看流程&#xff0c;所以根据作者提供的信息进行修改&#xff0c;在hooks下增加下面文件useDraggableScroll.ts import { ref, onMounted, on…

网络编程day1

一、思维导图 网络基础

泛微E-office 10 schema_mysql接口敏感信息泄露漏洞复现 [附POC]

文章目录 泛微E-office 10 schema_mysql接口敏感信息泄露漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现泛微E-office 10 schema_mysql接口敏感信息泄露漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内…

WPF自定义控件的应用(DynamicResource的使用方法)

1 DynamicResource的使用方法 可以在字典文件 的抬头区写入数&#xff1a; <SolidColorBrush x:Key"PrimaryBackgroundColor" Color"#FFABAdB3"/><SolidColorBrush x:Key"TextBox.MouseOver.Border" Color"#FF7EB4EA"/>&l…