🟢 Лёгкий · 1 очк. Стандартная библиотека
Чем time.Ticker отличается от time.Timer?
A Ничем, это синонимы
B Ticker срабатывает периодически через равные интервалы, Timer - однократно после заданной задержки
C Timer работает только в горутинах
D Ticker точнее Timer
Объяснение вопроса

time.Ticker и time.Timer - два таймерных механизма в Go:

// Timer - однократное срабатывание
timer := time.NewTimer(5 * time.Second)
<-timer.C // сработает один раз через 5 сек
timer.Stop() // освободить ресурсы если не нужен

// Ticker - периодическое срабатывание
ticker := time.NewTicker(1 * time.Second)
defer ticker.Stop() // обязательно остановить!
for t := range ticker.C {
    fmt.Println("tick", t)
}

Важно:

  • ticker.Stop() обязателен - без него горутина и канал утекают
  • time.After(d) - обертка над Timer, возвращает только канал (удобно в select)
  • Ticker не компенсирует пропущенные тики: если обработка дольше интервала, тики накапливаются в канале
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.