首页 > 其他分享 >go语言time.Timer

go语言time.Timer

时间:2023-04-25 18:55:54浏览次数:40  
标签:uintptr Timer time go type AfterFunc

go语言time.Timer

Timer是一个一次性的定时器,经过指定的时间后将会触发一个时间,通知调用的goroutine

使用方法

func main() {
	timer := time.NewTimer(3 * time.Second)

	for {
		select {
		case t := <-timer.C:
			fmt.Println(t)
			return
		}
	}
}

数据结构

Timer

// The Timer type represents a single event.
// When the Timer expires, the current time will be sent on C,
// unless the Timer was created by AfterFunc.
// A Timer must be created with NewTimer or AfterFunc.
type Timer struct {
	C <-chan Time
	r runtimeTimer
}

Timer代表一次事件,当Timer过期了,当前时间会被发送到channel C中,当Timer是AfterFunc方法创建时除外

  • C : 调用者可以通过此channel来接受时间
  • r : 系统管理的定时器

runtimeTimer

type runtimeTimer struct {
	pp       uintptr
	when     int64
	period   int64
	f        func(any, uintptr) // 
	arg      any
	seq      uintptr
	nextwhen int64
	status   uint32
}

标签:uintptr,Timer,time,go,type,AfterFunc
From: https://www.cnblogs.com/zpf253/p/17353544.html

相关文章

  • ABC267G Increasing K Times 题解
    做这道题,很有感悟,发篇文。先给数列从小到大排个序。接下来设\(f_{i,j}\)表示前\(i\)个数的排列形成\(j\)个上坡的方案数。接下来考虑转移,分为插入第\(i\)个数后增加上坡和不增加上坡两种情况。对于不增加的情况,有三种可能:第\(i\)个数插入在了数列的最前端,有\(1\)......
  • 3 go语言变量类型
    目录3go语言变量类型1数字1.1int、int8、int16、int32、int641.2uint、uint8、uint16、uint32、uint641.3浮点型1.4复数1.5byte和rune2字符串3布尔类型4常量5iota常量生成器(1)定义规则6语句块、可见规则、作用域范围6.1语句块6.2可见行规则6.3作用域范围(1)全局变量(2......
  • Django框架——路由分发、名称空间、虚拟环境、视图层三板斧、JsonResponse对象、requ
    路由分发#Django支持每个应用都可以有自己独立的路由层、静态文件、模版层。基于该特性多人开发项目就可以完全解耦合,之后利用路由分发还可以整合到一起多个应用都有很多路由与视图函数的对应关系这个时候可以拆分到各自的路由层中使用路由分发之前总路由直接是路由与视图......
  • golang 中通过strings/bytes/bufio 等包实现相关IO
    在go的IO中,除了io、os等包,我们还有strings、bytes、bufio等实现IO读写,这其中有些实现了io.Reader,有些同时实现了io.Reader和io.Writer接口。接下来我们一个个看相关的使用。1.strings在strings包中,只实现了Reader,我们看看其代码://实现的readertypeRea......
  • go语言入门
    go语言入门go简介go语言,golang,是谷歌公司开发的,是编译型语言。编译型语言,需要将go代码编译成可执行文件,然后就可以在相应的系统上跑了,而开发环境中,我们需要下载gosdk,这个是go管理代码资源的工具,我们可以通过gobuild命令来编译go代码,gorun来编译+运行go代码(编译的代码即用即......
  • django打包成whl包并分发
    django打包成whl包并分发python中下载setuptools工具,打包成whl包结构公司内部写的包,只给公司内部使用,可以开源出来公司写好的项目,打包好,发送给客户,客户可以直接运行起来,不需要下载依赖注意:之前下载的第三包都是:requests-2.28.2-py3-none-any.whlwhl结尾的打包好的包,可以......
  • go语言 把python项目打包、变量类型、常量、函数基础、函数高级
    把python项目打包#https://zhuanlan.zhihu.com/p/624648232#python----》setuptools--》whl包结构公司内部写了包---》公司内部用---》开源出来公司写好的项目,打包好,发给客户,客户可以直接运行起来#你们下的第三方包都是:requests-2.28.2-py3-none-any.whlwhl......
  • 仿Django框架-基于wsgiref模块和jinja2模块写一个简单的框架 主流框架简介 动静态网
    目录仿Django框架-基于wsgiref模块和jinja2模块写一个简单的框架一、前期需要的了解背景知识web框架的本质理解1:连接前端与数据库的中间介质理解2:socket服务端手写web框架的大概思路1.编写socket服务端代码2.浏览器访问响应无效>>>:HTTP协议3.根据网址后缀的不同获......
  • golang 通过 os 包进行文件读写
    go中os包主要与操作系统打交道,实际底层还是通过相关的系统调用实现文件的读写操作,今天我们就来聊聊通过os包实现文件的读写操作。我们在使用os包进行相关操作时,主要流程:读操作open->read->close写操作open->read->write->close总体来说,读写操作都......
  • Go
    Go语言Go语言介绍​ 全称Golang,是Google公司2009年11月对外公布的一门编程语言静态,强类型(静态:类型固定强类型:不同类型不允许直接运算)属于编译型语言源代码编译成机器语言,由机器直接执行机器码即可执行。python是解释型语言,想要编译成可执行文件需要借助于pipinstaller......