Нюансы Ticker и закрытия канала?

Ответ

Ticker.Stop() освобождает ресурсы; если не вызвать - утечка. Горутина, читающая из ticker.C, должна учитывать остановку. Не закрывают канал C тикера - его закрывает только Stop(). При отмене контекста нужно остановить тикер и выйти из цикла по тикеру.

ticker := time.NewTicker(interval)
defer ticker.Stop()
for { select { case <-ctx.Done(): return; case <-ticker.C: do() } }
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.