Introduction
Ce laboratoire se concentre sur l'utilisation des timers et des tickers en Golang. Les timers et les tickers sont utiles pour exécuter du code à un moment spécifique ou à intervalles réguliers.
This tutorial is from open-source community. Access the source code
💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici
Ce laboratoire se concentre sur l'utilisation des timers et des tickers en Golang. Les timers et les tickers sont utiles pour exécuter du code à un moment spécifique ou à intervalles réguliers.
Le laboratoire nécessite la mise en œuvre d'un timer qui attend une durée spécifiée puis déclenche une action. De plus, le timer devrait être annulable avant son déclenchement.
time
devrait être importé.// Le premier timer déclenchera environ 2 secondes après que
// nous ayons démarré le programme, mais le second devrait être
// arrêté avant qu'il ait eu le temps de déclencher.
$ go run timers.go
Timer 1 fired
Timer 2 stopped
Voici le code complet ci-dessous :
// Nous souhaitons souvent exécuter du code Go à un moment donné
// dans le futur, ou de manière répétée à intervalles réguliers.
// Les fonctionnalités intégrées de _timer_ et _ticker_ de Go
// facilitent ces deux tâches. Nous examinerons tout d'abord les
// timers puis les [tickers](tickers).
package main
import (
"fmt"
"time"
)
func main() {
// Les timers représentent un seul événement dans le futur. Vous
// indiquez au timer combien de temps vous voulez attendre, et il
// fournit un canal qui sera signalé à ce moment-là. Ce timer
// attendra 2 secondes.
timer1 := time.NewTimer(2 * time.Second)
// Le `<-timer1.C` bloque sur le canal `C` du timer jusqu'à ce
// qu'il envoie une valeur indiquant que le timer a déclenché.
<-timer1.C
fmt.Println("Timer 1 fired")
// Si vous vouliez simplement attendre, vous auriez pu utiliser
// `time.Sleep`. Une raison pour laquelle un timer peut être
// utile est que vous pouvez annuler le timer avant qu'il ne
// déclenche. Voici un exemple de cela.
timer2 := time.NewTimer(time.Second)
go func() {
<-timer2.C
fmt.Println("Timer 2 fired")
}()
stop2 := timer2.Stop()
if stop2 {
fmt.Println("Timer 2 stopped")
}
// Donnez au `timer2` suffisamment de temps pour déclencher, s'il
// devait jamais le faire, pour montrer qu'il est effectivement
// arrêté.
time.Sleep(2 * time.Second)
}
Ce laboratoire a démontré l'utilisation des timers en Golang. Les timers peuvent être utilisés pour exécuter du code à un moment spécifique ou pour attendre une durée spécifiée avant d'exécuter du code. De plus, les timers peuvent être annulés avant qu'ils ne déclenchent.