当前位置: 首页 > 网络应用技术

在GO语言中使用计时器

时间:2023-03-08 19:10:55 网络应用技术

  计时器是单个事件计时器,也就是说,计时器只能结束一次。

  创建:

  :创建计时器

  源代码包SRC/Time/Sleep.Go:计时器定义计时器数据结构:

  计时器只暴露了一个渠道到外界。当指定的时间到来时,您将写入频道中的系统时间,即事件。

  例如,当数据在连接中等待,设置超时,并且时间到达时没有获得数据,则是超时。

  在上面的示例中,选择句子正在查询CONN和TIMER.C的两个管道。计时器将在3s后将数据写入Timer.c。如果3S中的conn没有数据,则将其判断为超时。

  有时我们希望将来执行一定时间:

  delayFunction()将始终等待计时器的事件进入(打印)。

  路口

  这

  路口

  有时我们只想等待指定的时间。无需提前停止计时器,也无需重复使用计时器,因此我们可以使用匿名计时器:

  打印时间间隔为1,但实际上是计时器,但是代码变得更简单。

  我们可以使用AfterFunc简单地实现延迟方法的方法:

  例子:

  tricker是一个定期计时器,也就是说,一个周期性触发事件。它的数据结构与计时器完全相同:

  创建股票时,将指定时间为事件触发周期。这也是股票和计时器之间的主要区别。

  示例,每1秒记录的日志:

  它将继续从管道中获取事件,并在接收事件后打印一条日志。如果管道中没有数据,则管道中将有一个阻止事件。由于收款人将定期在管道中写入事件,因此上述过程将打印已接收的打印日志。

  路口

  路口

  如果我们需要一个时间旋转任务,我们可以使用简单的tick函数来获取计时器的管道。功能原型如下:

  路口

  例如,以上错误示例,选择每次检测情况时都会创建一个计时器,并且将连续执行SELECT语句。

  正确用法: