如何在 Golang 中使用 Tickers?

通常情况下,我们希望在特定时间间隔后重复执行特定任务。在Golang,我们的帮助下实现这一行情。

我们也可以将它们与goroutines一起使用,以便我们可以在应用程序的后台运行这些任务,而不会中断应用程序的流程。

我们在股票代码中使用的NewTicker()函数是将时间作为参数的函数,我们可以在其中提供秒甚至毫秒。

示例 1

以下示例演示了我们如何在 Golang 中使用股票代码。考虑下面显示的代码。

package main

import (

   "fmt"

   "time"

)

func main() {

   fmt.Println("Starting the ticker")

   ticker := time.NewTicker(1 * time.Second)

   for _ = rangeticker.C{

      fmt.Println("Ticking..")

   }

}

输出结果

如果我们使用go run main.go命令运行上面的代码,那么我们将得到以下输出。

Starting the ticker

Ticking..

Ticking..

需要注意的是,除非我们强行停止,否则上述程序将继续执行。我们可以用CTRL+C停止它。

示例 2

我们还可以在goroutines的帮助下在后台运行自动收报机。考虑下面显示的代码。

package main

import (

   "fmt"

   "time"

)

func inBackground() {

   ticker := time.NewTicker(1 * time.Second)

   for _ = rangeticker.C{

      fmt.Println("Ticking..")

   }

}

func main() {

   fmt.Println("Starting the ticker")

   go inBackground()

   fmt.Println("在 goroutine 之后..")

   select {}

}

输出结果

如果我们使用go run main.go命令运行上面的代码,那么我们将得到以下输出。

Starting the ticker

在 goroutine 之后..

Ticking..

Ticking..

需要注意的是,除非我们强行停止,否则上述程序将继续执行。我们可以用CTRL+C停止它。

示例 3

现在让我们考虑一个更高级的股票代码用例,其中我们将使用一个通道和一个选择语句,并且股票代码也将运行一段定义的时间。

考虑下面显示的代码。

package main

import (

   "fmt"

   "time"

)

func main() {

   ticker := time.NewTicker(400 * time.Millisecond)

   done := make(chan bool)

   fmt.Println("Started!")

   go func() {

      for {

         select {

         case <-done:

            return

         case t := <-ticker.C:

            fmt.Println("Tick at", t)

         }

      }

   }()

   time.Sleep(1600 * time.Millisecond)

   ticker.Stop()

   done <- true

   fmt.Println("Stopped!")

}

输出结果

如果我们使用go run main.go命令运行上面的代码,那么我们将得到以下输出。

Started!

Tick at 2009-11-10 23:00:00.4 +0000 UTC m=+0.400000001

Tick at 2009-11-10 23:00:00.8 +0000 UTC m=+0.800000001

Tick at 2009-11-10 23:00:01.2 +0000 UTC m=+1.200000001

Tick at 2009-11-10 23:00:01.6 +0000 UTC m=+1.600000001

Stopped!

以上是 如何在 Golang 中使用 Tickers? 的全部内容, 来源链接: utcz.com/z/338637.html

回到顶部