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

news2024/9/21 23:38:49

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 main

import (
	"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.coloradmin.cn/o/1997425.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《向量数据库指南》——向量数据库技术积累与商业机会

一豪:Charles提到了一个关键点,就是RAG技术结合模型对非结构化数据的理解和搜索能力,甚至可以很好地架接在传统结构化数据的解决方案中。作为向量数据库的核心技术点,对数据本身特别是非结构化数据的向量化、精炼和压缩,我相信Zilliz等公司有很多独门技巧和技术积累。随着…

UE基础 —— 编辑器界面

菜单栏 UE中每个编辑器都有一个菜单栏,部分菜单会出现在所有编辑器窗口中,如File、Window、Help,其他则是其编辑器特有的; 主工具栏 UE中部分最常用的工具和命令的快捷方式; 1,保存按钮(ctrls&a…

NIO线程模型

NIO线程模型主要涉及以下几个方面: 一、基本概念 NIO(New Input/Output)是Java的一种新的输入输出模型,也被称为非阻塞IO。其核心特点是数据读写操作均是非阻塞的,即在进行读写操作时,若数据未准备好&…

Python第三方库——mrjob的介绍

一、简介 mrjob 是一个强大的 Python 库,它允许开发者以 Pythonic 的方式编写 MapReduce 作业,并在多种环境下运行这些作业,包括本地机器、Hadoop 集群、Amazon Elastic MapReduce (EMR) 和 Google Cloud Dataproc。通过使用 mrjob&#xff…

ARTS Week 37

Algorithm 本周的算法题为 1232. 缀点成线 给定一个数组 coordinates ,其中 coordinates[i] [x, y] , [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上。 示例 1:输入:coordinates …

8月9日笔记

8月9日笔记 什么是代理? “代理”通常指的是“网络代理”,它是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。代理服务器作为中间人…

【中项】系统集成项目管理工程师-第11章 项目范围管理-11.3定义范围

前言:系统集成项目管理工程师专业,现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试,全称为“全国计算机与软件专业技术资格(水平)考试”&…

PHP利用PCRE回溯次数

目录 原理 例子 来一道题(2018i春秋圣诞欢乐赛官方WriteUp) 利用php弱语言特性解题 利用回溯 原理 对于一串正则表达式来说它匹配了一系列的字符串后自身的正则还没有用完,这个时候就会触发回溯机制,超过回溯次数正则匹配就失…

【代码故事】VSCode知名主题material-theme仓库代码清空

大家好,我是前端之虎陈随易。 这是我的个人网站 https://chensuiyi.me。 出大事了 看到了一篇前端社区开源扛把子 Anthony Fu 的帖子。 经过一番了解,出大事了! 知名 VSCode 主题 material-theme 仓库清空了! 连带着所有提交…

【MySQL】1.MySQL基本操作

目录 一、MySQL数据库登陆 1、设置环境变量 2、cmd命令登陆数据库 二、基本操作语法 1、显示数据库——SHOW 2、使用/选择数据库——USE 3、删除——DROP 4、创建——CREATE 5、查看表结构——DESC 6、数据操作——增删改查 (1)增/插入&#…

SpringCloud-gateway编码实现路由策略的自动刷新,动态路由

文章目录 一、概述1、背景2、实现思路 二、编码实现1、nacos配置刷新公共类2、自定义RouteDefinition3、route缓存类4、动态更新路由网关service5、动态路由加载类 三、测试 一、概述 1、背景 gateway可以配置路由断言过滤器,但是通常一个微服务体系下&#xff0c…

KCTF 闯关游戏:1 ~ 7 关

前言 看雪CTF平台是一个专注于网络安全技术竞赛的在线平台,它提供了一个供网络安全爱好者和技术专家进行技术交流、学习和竞技的环境。CTF(Capture The Flag,夺旗赛)是网络安全领域内的一种流行竞赛形式,起源于1996年…

虚拟机Linux系统字体太小怎么办?

每次用虚拟机的Linux系统时,都觉得字体小得伤眼睛,所以就尝试找了下,没想到可以直接用大号字体,这感觉好多啦~ 这里针对centOS的图形界面,非常简单,见下面的图: 应用程序 --> 系统工具 --&…

ELK三个开源软件的工作原理

一、Elasticsearch Elasticsearch的工作原理主要涉及其数据处理、索引机制、查询过程以及集群管理等方面。一下是对Elasticsearch工作原理的详细解析: 1. 数据处理 1.1 数据导入 Elasticsearch支持多种数据源,包括直接输入、通过Logstash和Beats等工具…

js日期处理库--dayjs

js中处理日期是一件比较麻烦的事情,这里推荐使用day.js库来处理,文档:Day.js中文网 引入库 如果没有引入过dayjs,需要先执行npm install,然后import就能使用了 npm install dayjs import dayjs from dayjsconsole.log(dayjs().format()) 如果使用的…

leetcode日记(67)单词搜索

太坑了!老是时间超限,不是时间超限就是内存超限! 思路很简单,就是先遍历整个网格寻找开头,然后上下左右搜寻找下一个字母,引用递归。 最终看边答案边写出来的: class Solution { public:bool …

36-《茅膏菜》:自然奇境中的捕虫艺术家

茅膏菜 腺毛闪烁诱昆虫,粘液缠绕捕食成。 绿叶如网藏陷阱,茅膏菜展捕虫情。 中文名:茅膏菜 拉丁名:Drosera peltata Thunb. 别名:捕虫草、落地珍珠、一粒金丹、苍蝇草、珍珠草 科属:茅膏菜科茅膏菜属 生…

词向量,位置嵌入;归一化;自注意力层;投影;残差连接:防止梯度消失;MLP;

目录 词向量,位置嵌入 归一化 自注意力层 我们该如何处理Q、K和V向量呢 投影 残差连接:防止梯度消失 MLP 层归一化处理 GELU激活函数 MLP Weights 和MLP Projection Weights区别和联系 一、MLP Weights 二、MLP Projection Weights:输入数据或隐藏层的输出投影到…

指针(1)-学习笔记

指针(1)-学习笔记 1.内存1.1内存 2.指针变量和地址2.1取地址操作符(&)2.2指针变量和解引用操作符(*)2.2.1 指针变量2.2.2解引用操作符 3 指针变量类型的意义3.1指针的解引用3.2指针-整数3.3 void*指针 …

PyTorch深度学习实战(7)—— 线性回归

线性回归是机器学习的入门内容,应用十分广泛。线性回归利用数理统计中的回归分析来确定两种或两种以上变量间相互依赖的定量关系,其表达形式为$y wxbe$。其中,$x$和$y$是输入输出数据,$w$和$b$是可学习参数,误差$e$服…