当前位置: 首页 > news >正文

golang 不用sleep如何实现实现每隔指定时间执行一次for循环?

今天介绍的是在go语言里面不用time.Sleep, 使用for range 定时器管道 来实现按照我们指定的时间间隔来执行for循环, 即: for range ticker.C { } 这样就实现了for每隔指定时间执行一次,除非管道被关闭,否则for而且会一直柱塞当前线程,

实现测试代码如下:


import ("bufio""fmt""os""testing""time"
)// 测试for range 定时器管道 
func TestDemo(t *testing.T) {ticker := time.NewTicker(2 * time.Second) // 定时器 每隔2秒执行一次defer ticker.Stop()                       // 确保退出时关闭定时器buf := bufio.NewWriter(os.Stdout)//因为这里的ticker.C是一个管道, 在未关闭管道之前这个for会一直阻塞, 这里是一个定时器管道 即每隔2秒钟这个for就会被执行一次// 如果不需要变量x,则 可以省略, 如: for range tick.C { //...for x := range ticker.C {// 向os.Stdout写入数据buf.WriteString("\nx: " + x.Format("2006-01-02 15:04:05"))buf.Flush() // 输出数据}panic("unreachable")
}

for语句后面可选跟的三种表达式    [ Condition | ForClause | RangeClause ] , 上面的例子就是第三种可选 RangeClause (范围语句)

官方说明和语法:

A "for" statement specifies repeated execution of a block. There are three forms: The iteration may be controlled by a single condition, a "for" clause, or a "range" clause.

ForStmt = "for" [ Condition | ForClause | RangeClause ] Block .
Condition = Expression .

总结: for后面可选跟3种表达式, 第一个是条件即 boolean, 第二个可选是 一个语句, 第三个是range语句, 可以看出,在我们学习go语言的时候,要学会能够看明白官方的这个语法很重要.....

相关文章:

golang 不用sleep如何实现实现每隔指定时间执行一次for循环?

今天介绍的是在go语言里面不用time.Sleep, 使用for range 定时器管道 来实现按照我们指定的时间间隔来执行for循环, 即: for range ticker.C { } 这样就实现了for每隔指定时间执行一次,除非管道被关闭,否则for而且会一直柱塞当前线…...

【el-tooltips改造】Vue实现文本溢出才显示el-tooltip,否则不显示el-tooltips

实现原理: 使用disabled属性控制el-tooltip的content显示与隐藏; 目标: 1行省略、多行省略、可缩放页面内的文本省略都有效。 实现方式: 1、自定义全局指令,tooltipAutoShow.js代码如下(参考的el-table中的…...

【Python数据类型的奥秘】:构建程序基石,驾驭信息之海

文章目录 🚀Python数据类型🌈1. 基本概念⭐2. 转化👊3. 数值运算💥4. 数值运算扩展(math库常用函数) 🚀Python数据类型 🌈1. 基本概念 整数(int):整数是没有小数部分的数…...

vue使用html2canvas截图下载时,存在svg或者img或者特殊字体时截图不全的解决办法

使用html2canvas进行div截图时,存在svg和img的解决办法 写在前面:vue使用html2canvas截图时,存在svg或者img或者特殊字体时截图时空白,或者不全解决办法如下第一步,svg或者img先转base64(如果是特殊字体&am…...

机器学习----奥卡姆剃刀定律

奥卡姆剃刀定律(Occam’s Razor)是一条哲学原则,通常表述为“如无必要,勿增实体”(Entities should not be multiplied beyond necessity)或“在其他条件相同的情况下,最简单的解释往往是最好的…...

【设计模式】行为型设计模式之 模板方法模式

介绍 GOF 定义 模板方法模式 Template Method Design Pattern :模板方法模式在一个方法中定义一个算法骨架,并将某些步骤推迟到子类中去实现;模板方法在不改变算法整体结构的情况下,可以重新定义算法中的某些步骤。 代码举例 …...

智能合约中断言失败

断言失败: 断言(assert)在智能合约中用于确保内部逻辑的一致性和正确性,但如果使用不当,确实可能导致意外的合约终止或资金锁定。这是因为assert主要用于检测程序内部的错误,例如算法错误或逻辑错误&#…...

flink读取hive写入http接口

目录 0、创建hive数据 1、pom.xml 2、flink代码 3、sink 4、提交任务jar 5、flink-conf.yaml 6、数据接收 flink-1.17.2jdk1.8hive-3.1.3hadoop3.3.6passwordhttp0、创建hive数据 /cluster/hive/bin/beeline !connect jdbc:hive2://ip:10000 create database demo; d…...

【论文阅读】MODELING AND SOLVING THE TRAVELING SALESMAN PROBLEM WITH PRIORITY PRIZES

文章目录 论文基本信息摘要1.引言2. INTEGER QUADRATIC PROGRAM FOR TSPPP3. MIXED INTEGER LINEAR PROGRAMS FOR TSPPP4. TABU SEARCH ALGORITHM FOR TSPPP5. COMPUTATIONAL RESULTS6. CONCLUDING REMARKS补充 论文基本信息 《MODELING AND SOLVING THE TRAVELING SALESMAN P…...

【CS.SE】使用 docker pull confluentinc/cp-kafka 的全面指南

文章目录 1 引言2 准备工作2.1 安装 Docker2.1.1 在 Linux 上安装 Docker2.1.2 在 macOS 上安装 Docker2.1.3 在 Windows 上安装 Docker 2.2 验证 Docker 安装 3 拉取 confluentinc/cp-kafka Docker 镜像3.1 拉取镜像3.2 验证镜像 4 运行 Kafka 容器4.1 启动 ZooKeeper4.2 启动…...

STM32快速入门(ADC数模转换)

STM32快速入门(ADC数模转换) 前言 ADC数模转换存在的意义就是将一些温度传感器、各自数据传感器产生的模拟信号转换成方便识别和计算的数字信号。 导航 图24 通用定时器框图: 图片截取自STM32 F1XX中文参考手册。还是以框图为中心&#x…...

Linux环境在非root用户中搭建(java-tomcat-redis)

注: 本文在内网(离线)环境,堡垒机中搭建,服务器不同可能有所差异,仅供参考 本文安装JDK-20.0.1版本,apache-tomcat-10.1.10版本,redis-6.2.15版本 本文服务器IP假设:192.168.88.133 root用户创建子用户并…...

Unity 之 代码修改材质球贴图

Unity 之 代码修改材质球贴图 代码修改Shader:ShaderGraph:材质球包含属性 代码修改 meshRenderer.material.SetTexture("_Emission", texture);Shader: ShaderGraph: 材质球包含属性 materials[k].HasProperty("…...

spark-3.5.1+Hadoop 3.4.0+Hive4.0 分布式集群 安装配置

Hadoop安装参考: Hadoop 3.4.0HBase2.5.8ZooKeeper3.8.4Hive4.0Sqoop 分布式高可用集群部署安装 大数据系列二-CSDN博客 一 下载:Downloads | Apache Spark 1 下载Maven – Welcome to Apache Maven # maven安装及配置教程 wget https://dlcdn.apache.org/maven/maven-3/3.8…...

Matlab实现GWO-CNN-LSTM-Mutilhead-Att灰狼算法卷积长短期记忆神经网络融合多头注意力机制预测 SCI顶级优化

数据预处理:准备和清理数据,包括数据的加载、特征提取、归一化等。 GWO (灰狼算法) 的实现:根据灰狼算法的原理和公式,编写 MATLAB 代码来初始化灰狼群体、计算适应度函数、更新位置等。 CNN (卷积神经网络) 的构建:使…...

RTKLIB之RTKPLOT画图工具

开源工具RTKLIB在业内如雷贯耳,其中的RTKPLOT最近正在学习,发现其功能之强大,前所未见,打开了新的思路。 使用思博伦GSS7000卫星导航模拟器,PosApp软件仿真一个载具位置 1,RTKPLOT支持DUT 串口直接输出的NMEA数据并…...

本地部署 RAGFlow

本地部署 RAGFlow 0. RAGFlow 是什么?1. 安装 wsl-ubuntu2. (可选)配置清华大学软件源3. 系统更新和安装构建工具4. 安装 Miniconda35. 安装 CUDA Toolkit6. 安装 git lfs7. 配置 Hugging Face 的缓存路径8. 配置 vm.max_map_count9. 安装 Docker Engine10. 安装 nginx11. 本地…...

php常用数据库操作

文章目录 PHP操作1. mysqli_connect() 连接数据库2. mysqli_close() 关闭数据库3. mysqli_num_rows 查询结果集中的行数4. mysqli_select_db 选择数据库的函数5. mysqli_query 常规的插入查找等6. header( )7.防止 sql 注入 PHP操作 1. mysqli_connect() 连接数据库 2. mysql…...

判断经纬度是否在某个城市内

一、从高德获取指定城市边界经纬度信息 通过apifox操作&#xff1a; 二、引入第三方jar包&#xff1a; maven地址&#xff1a;https://mvnrepository.com/ maven依赖&#xff1a; <dependency><groupId>org.locationtech.jts</groupId><artifactId>…...

Java——数组排序和查找

一、排序介绍 1、排序的概念 排序是将多个数据按照指定的顺序进行排列的过程。 2、排序的种类 排序可以分为两大类&#xff1a;内部排序和外部排序。 3、内部排序和外部排序 1&#xff09;内部排序 内部排序是指数据在内存中进行排序&#xff0c;适用于数据量较小的情况…...

Web.py部署环境配置终极指南:Nginx、Gunicorn与Docker容器化全解析

Web.py部署环境配置终极指南&#xff1a;Nginx、Gunicorn与Docker容器化全解析 【免费下载链接】webpy web.py is a web framework for python that is as simple as it is powerful. 项目地址: https://gitcode.com/gh_mirrors/we/webpy Web.py是一款简洁而强大的Pyth…...

终极指南:gh-dash 帮助命令自动补全如何提升 GitHub 管理效率 [特殊字符]

终极指南&#xff1a;gh-dash 帮助命令自动补全如何提升 GitHub 管理效率 &#x1f680; 【免费下载链接】gh-dash A beautiful CLI dashboard for GitHub &#x1f680; 项目地址: https://gitcode.com/gh_mirrors/gh/gh-dash gh-dash 是一个功能强大的 CLI 仪表板&am…...

5个步骤掌握抖音批量下载高效解决方案:从需求到实战指南

5个步骤掌握抖音批量下载高效解决方案&#xff1a;从需求到实战指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容管理领域&#xff0c;短视频资源的高效获取已成为内容创作者、研究人员和普通用…...

OV2640摄像头模块实战指南:从硬件连接到图像处理

1. OV2640摄像头模块初探&#xff1a;为什么选择它&#xff1f; 第一次接触OV2640摄像头模块时&#xff0c;我被它的小巧身材和强大性能惊艳到了。这个只有指甲盖大小的模块&#xff0c;居然能输出200万像素的高清图像&#xff0c;而且功耗低到能让电池供电设备连续工作数小时。…...

C语言文件操作实战:用fread和fwrite处理二进制数据的5个常见场景

C语言文件操作实战&#xff1a;用fread和fwrite处理二进制数据的5个常见场景 在嵌入式系统开发、游戏编程和工业控制等领域&#xff0c;二进制文件操作往往是数据持久化的核心手段。与文本文件相比&#xff0c;二进制格式能更精确地保存内存数据布局&#xff0c;避免字符编码转…...

FPGA音频播放器避坑指南:WM8731 I2C配置与左对齐时序的那些坑

FPGA音频播放器避坑指南&#xff1a;WM8731 I2C配置与左对齐时序的那些坑 第一次听到自己设计的FPGA音频播放器发出刺耳的噪音时&#xff0c;我盯着示波器上扭曲的波形陷入了沉思。作为嵌入式开发者&#xff0c;我们总在数字与模拟的交界处行走&#xff0c;而WM8731这颗看似简单…...

TranslucentTB:打造高效个性化Windows任务栏的3大核心价值与实践指南

TranslucentTB&#xff1a;打造高效个性化Windows任务栏的3大核心价值与实践指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB Windows…...

从PHY芯片到TCP/IP协议栈:用Wireshark抓包分析lwIP的ethernetif_input全流程

从PHY芯片到TCP/IP协议栈&#xff1a;用Wireshark抓包分析lwIP的ethernetif_input全流程 在嵌入式网络开发中&#xff0c;理解数据从物理层到协议栈的完整传输路径至关重要。本文将结合STM32F7开发板实战&#xff0c;通过Wireshark抓包与示波器波形双重验证&#xff0c;深入解析…...

解决插件管理痛点:Scarab的智能高效管理方案

解决插件管理痛点&#xff1a;Scarab的智能高效管理方案 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 你是否曾为部署一个心仪的游戏插件而耗费整个下午&#xff1f;好不容易…...

Mind+连接百度AI实战:手把手教你做一个能听会说的垃圾分类小助手

Mind与百度AI融合实战&#xff1a;打造智能垃圾分类助手的完整指南 在创客教育和STEAM领域&#xff0c;将硬件编程与人工智能结合已成为培养学生综合能力的新趋势。Mind作为一款图形化编程工具&#xff0c;以其低门槛和丰富的扩展库深受教育者和爱好者青睐。而百度AI开放平台提…...