En el proceso de desarrollo diario, con frecuencia encontrará escenarios que operan a tiempo. El uso del paquete de tiempo en Golang puede implementar fácilmente operaciones relacionadas con el tiempo. Los próximos artículos explicarán el paquete de tiempo en detalle Este artículo explica la estructura time.Ticker en el paquete de tiempo.
tiempo.Ticker
time.Ticker enviará periódicamente un tipo de datos time.Time a un canal de acuerdo con un intervalo de tiempo específico, y el receptor del canal puede leer estos datos del canal en este intervalo de tiempo fijo, que a menudo se usa para implementar la correlación de tiempo función. La definición de la estructura y los métodos correspondientes son los siguientes:
type Ticker struct {
C <-chan Time // The channel on which the ticks are delivered.
r runtimeTimer
}
Hay dos métodos:
- func (t *Ticker) Reset(d Duración), detiene el temporizador y restablece su período al intervalo especificado.
- func (t *Ticker) Stop(), apaga el temporizador, después de llamar a este método, no se enviarán más ticks.
Ejemplo de uso
Puede usar la función time.NewTicker para crear una instancia de Ticker, un ejemplo de uso simple es el siguiente:
package main
import (
"fmt"
"time"
)
func main() {
ticker := time.NewTicker(time.Second) // 每隔1s进行一次打印
defer ticker.Stop()
count := 0
for {
<-ticker.C
fmt.Println("Tick")
count++
if count > 2 {
ticker.Reset(2 * time.Second)
}
if count > 5 {
break
}
}
}
Primero cree un objeto time.Ticker con un intervalo de tiempo de 1 segundo, cambie el intervalo de tiempo a 2 segundos después de la tercera vez y salga del bucle después de la sexta vez.