Create one-off delays with time.NewTimer and repeating intervals with time.NewTicker in Go.
Use time.NewTimer for one-off delays and time.NewTicker for repeating intervals.
package main
import (
"fmt"
"time"
)
func main() {
// One-off timer
timer := time.NewTimer(2 * time.Second)
<-timer.C
fmt.Println("Timer fired")
// Repeating ticker
ticker := time.NewTicker(1 * time.Second)
go func() {
for range ticker.C {
fmt.Println("Ticker tick")
}
}()
time.Sleep(5 * time.Second)
ticker.Stop()
}
A timer is like a single alarm clock that rings once after a set time, while a ticker is like a metronome that clicks repeatedly at regular intervals. You use a timer when you need to do something after a specific delay, and a ticker when you need to perform an action continuously over time. Always stop a ticker when you are done to prevent it from running forever.