Einführung
In diesem Lab geht es um die Verwendung von Zeitern und Tastern in Golang. Zeitgeber und Taster eignen sich zur Ausführung von Code zu einem bestimmten Zeitpunkt oder wiederholt in einem bestimmten Intervall.
This tutorial is from open-source community. Access the source code
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
In diesem Lab geht es um die Verwendung von Zeitern und Tastern in Golang. Zeitgeber und Taster eignen sich zur Ausführung von Code zu einem bestimmten Zeitpunkt oder wiederholt in einem bestimmten Intervall.
Das Lab erfordert die Implementierung eines Zeitgebers, der für eine bestimmte Zeitspanne wartet und dann feuert. Darüber hinaus sollte der Zeitgeber vor dem Auslösen abgebrochen werden können.
time
-Paket sollte importiert werden.// Der erste Zeitgeber wird ~2s nach dem Start des
// Programms feuern, aber der zweite sollte vor dem
// Auslösen gestoppt werden.
$ go run timers.go
Timer 1 fired
Timer 2 stopped
Hier ist der vollständige Code:
// Wir möchten oft Go-Code zu einem bestimmten Zeitpunkt
// in der Zukunft ausführen oder wiederholt in einem
// bestimmten Intervall. Go's integrierte _Timer_ und
// _Taster_ Funktionen erleichtern beide Aufgaben. Wir
// werden zuerst die Zeitgeber betrachten und dann die
// [Taster](tickers).
package main
import (
"fmt"
"time"
)
func main() {
// Zeitgeber repräsentieren ein einzelnes Ereignis in
// der Zukunft. Sie sagen dem Zeitgeber, wie lange Sie
// warten möchten, und er liefert einen Kanal, der zu
// diesem Zeitpunkt benachrichtigt wird. Dieser
// Zeitgeber wird 2 Sekunden warten.
timer1 := time.NewTimer(2 * time.Second)
// Der `<-timer1.C` blockiert auf dem Kanal `C` des
// Zeitgebers, bis er einen Wert sendet, der angibt,
// dass der Zeitgeber ausgelöst hat.
<-timer1.C
fmt.Println("Timer 1 fired")
// Wenn Sie nur warten möchten, hätten Sie `time.Sleep`
// verwenden können. Ein Grund, warum ein Zeitgeber
// nützlich sein kann, ist, dass Sie den Zeitgeber
// vor dem Auslösen abbrechen können. Hier ist ein
// Beispiel dafür.
timer2 := time.NewTimer(time.Second)
go func() {
<-timer2.C
fmt.Println("Timer 2 fired")
}()
stop2 := timer2.Stop()
if stop2 {
fmt.Println("Timer 2 stopped")
}
// Geben Sie dem `timer2` genug Zeit, um auszulösen,
// wenn es jemals ausgelöst werden würde, um zu zeigen,
// dass es tatsächlich gestoppt ist.
time.Sleep(2 * time.Second)
}
In diesem Lab wurde die Verwendung von Zeitgebern in Golang demonstriert. Zeitgeber können verwendet werden, um Code zu einem bestimmten Zeitpunkt auszuführen oder um eine bestimmte Zeitspanne zu warten, bevor der Code ausgeführt wird. Darüber hinaus können Zeitgeber vor dem Auslösen abgebrochen werden.