Go 快速入门指南 - 定时器

概述

调用 time.NewTicker() 方法即可。

例子

package main

import (
    "fmt"
    "time"
)

func main() {
    ticker := time.NewTicker(time.Second)
    defer ticker.Stop()

    done := make(chan bool)
    go func() {
        time.Sleep(5 * time.Second) // 模拟耗时操作
        done <- true
    }()

    for {
        select {
        case <-done:
            fmt.Println("Done!")
            return
        case <-ticker.C:
            fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
        }
    }
}

// $ go run main.go
// 输出如下,你的输出可能和这里的不一样
/**
  2021-01-03 15:40:21
  2021-01-03 15:40:22
  2021-01-03 15:40:23
  2021-01-03 15:40:24
  2021-01-03 15:40:25
  Done!
*/

联系我

0 条评论
请不要发布违法违规有害信息,如发现请及时举报或反馈
还没有人评论呢,速度抢占沙发!
相关文章
  • 介绍 CabloyJS提供了一个内置模块a-wasmgo,将go wasm模块的异步加载运行机制进行了封装,使我们可以非常方便的在CabloyJS项目中引入go wasm,从而支持更多的业务场景开发 ...

  • 简单介绍一下Go中Gin使用get和post方法获取前端数据 1.使用get方法获取url中的参数 因为我使用的网页只需要在url上传一个参数,简单介绍一下,get方法的传参吧,可能不全,后续补充~ ...

  • 一 微服务项目介绍 账户功能是每一个系统都绕不开的一部分,所以本次搭建的微服务项目就是账户微服务项目,其中向外暴露的功能有: 登录 注册 查询用户信息 修改信息 发送注册邮件 发送重置密码邮件 ...

  • 概述Go 接口是隐式实现。 对于一个数据类型,无需声明它实现了哪些接口,只需要实现接口必需的方法即可。当然了,存在一个小问题就是: 我们可能无意间实现了某个接口:) ,所以 命名 是多么重要的一件事情...

  • 概述 Go 支持将多个结构体通过嵌套的方式,组成一个大的结构体,降低了单个结构体复杂度,同时提高了结构体之间组合的灵活性。 例子 为了省略篇幅,本小节只使用 字面量 方式初始化,new() 的初始化方...

  • 1.Java VS Go语言Java,从源代码到编译成可运行的代码上图已经展示了这个过程:从Java的源代码编译成jar包或war包(字节码),最终运行在JVM中。我们把Java源代码编译后的jar包...

  • Go创建Grpc链接池 转载请注明来源:https://janrs.com/2023/03/创建grpc链接池/ 常规用法 gRPC 四种基本使用 请求响应模式 客户端数据流模式 服务端数据流...

  • 概述调用 log 包即可,包里面的方法输出日志时会自动加上日期时间前缀字符。例子输出到终端package main import ( "log" "os" ) func main(...

  • 概述阅读本小节之前,建议先阅读 数组 小节。切片 是对数组的一个连续片段的引用。片段可以是整个数组,也可以是数组的一部分 (例如数组的第 3 个元素到第 8 个元素)。所以 切片 是一个引用类型,改变...

  • 接口接口的定义这里用一个例子说明了golang中接口的含义与用法,先看代码 // Launch the goroutine to perform the search. ...

  • 目前go语言不仅在阿里集团内部,在整个互联网行业内也越来越流行,本文把高德过去go服务开发中的性能调优经验进行总结和沉淀,希望能为正在使用go语言的同学在性能优化方面带来一些参考价值。 前言 ...

  • 基础 语法 只记录需要特别注意的点 Diff 变量声明未使用会 CE。 _ 的妙用 交换变量:a, b = b, a 空白标识符 _ 用于抛弃值,如值 5 在:_, b = 5, 7 中被抛弃。 ...

  • 采用一致性hash算法将key分散到不同的节点,客户端可以连接到集群中任意一个节点 https://github.com/csgopher/go-redis 本文涉及以下文件: consistenth...

  • github: https://github.com/jinzhu/copier由于 golang 没有对复杂结构体的 clone 方法,所以,就需要有 copier 这样的工具库。它看起来很简单,但...

  • 1. 简介 本文将介绍 Go 语言中的 sync.Cond 并发原语,包括 sync.Cond的基本使用方法、实现原理、使用注意事项以及常见的使用使用场景。能够更好地理解和应用 Cond 来实现 go...

  • 前段时间一个需求涉及到给图片加水印,考虑图片安全性,决定放在后端加水印。记录一下代码。 思路 思路是先为水印文字生成一个仅包含水印文字的图片,把这个图片倾斜一定角度 (一般水印都是倾斜的),之后把倾斜...

  • 概述利用 channel (通道) 和 time.After() 方法实现超时控制。例子package main import ( "fmt" "time" ) func main...

  • 自增和主流编程语言的自增语法不同,Go 只支持 i++ 方式,不支持 ++i 方式。正确package main func main() { i := 1 i++ print...

  • 前言Go官方团队在2022.12.08发布了Go 1.20 rc1(release candidate)版本,Go 1.20的正式release版本预计会在2023年2月份发布。让我们先睹为快,看看G...

  • 一 导包 import ( micro2 "account/common/micro" "account/config/logger" "account/config/mysql" ...