Frequentemente, queremos executar o código Go em algum ponto no futuro ou repetidamente em algum intervalo. Os recursos de timers e tickers integrados de Go tornam essas duas tarefas fáceis.
Veremos primeiro os timers e depois os tickers.
Os timers representam um único evento no futuro. Você diz ao timer quanto tempo deseja esperar e ele fornece um canal que será notificado naquele momento.
time.NewTimer(time.Duration)
O <-timer1.C bloqueia no canal C do timer até enviar um valor indicando que o temporizador disparou.
Se você apenas quisesse esperar, poderia ter usado a função time.Sleep. Um motivo pelo qual um timer pode ser útil é que você pode cancelá-lo antes de disparar.