РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
817 of 1593 menu

Метод time.Ticker.Stop

Метод time.Ticker.Stop останавливает тикер, прекращая отправку значений времени в его канал. После вызова этого метода канал тикера больше не будет получать новые значения. Метод возвращает bool: true, если тикер был остановлен впервые, и false, если тикер уже был остановлен ранее.

Синтаксис

ticker.Stop()

Пример

Давайте создадим тикер и остановим его через некоторое время:

package main import ( "fmt" "time" ) func main() { ticker := time.NewTicker(500 * time.Millisecond) go func() { for t := range ticker.C { fmt.Println(t) } }() time.Sleep(2 * time.Second) stopped := ticker.Stop() fmt.Println("Ticker stopped:", stopped) time.Sleep(1 * time.Second) }

Результат выполнения кода:

"2026-09-04 10:00:00.5 +0300 MSK m=+0.500000001" "2026-09-04 10:00:01.0 +0300 MSK m=+1.000000001" "2026-09-04 10:00:01.5 +0300 MSK m=+1.500000001" "2026-09-04 10:00:02.0 +0300 MSK m=+2.000000001" "Ticker stopped: true"

Пример

Давайте попробуем остановить уже остановленный тикер:

package main import ( "fmt" "time" ) func main() { ticker := time.NewTicker(1 * time.Second) stopped1 := ticker.Stop() stopped2 := ticker.Stop() fmt.Println("First stop:", stopped1) fmt.Println("Second stop:", stopped2) }

Результат выполнения кода:

"First stop: true" "Second stop: false"

Пример

Давайте используем Stop для корректного завершения работы горутины:

package main import ( "fmt" "time" ) func main() { ticker := time.NewTicker(300 * time.Millisecond) done := make(chan bool) go func() { for { select { case t := <-ticker.C: fmt.Println("Tick at:", t) case <-done: fmt.Println("Goroutine stopped") return } } }() time.Sleep(1 * time.Second) ticker.Stop() done <- true time.Sleep(200 * time.Millisecond) }

Результат выполнения кода:

"Tick at: 2026-09-04 10:00:00.3 +0300 MSK m=+0.300000001" "Tick at: 2026-09-04 10:00:00.6 +0300 MSK m=+0.600000001" "Tick at: 2026-09-04 10:00:00.9 +0300 MSK m=+0.900000001" "Goroutine stopped"

Смотрите также

  • тип time.Ticker,
    который представляет тикер для периодических событий
  • метод time.Ticker.Reset,
    который изменяет интервал срабатывания тикера
  • тип time.Timer,
    который представляет таймер для однократного события
  • метод time.Timer.Stop,
    который останавливает таймер
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить