Функция After
func After(d Duration) <-chan Time
After ожидает истечения продолжительности d, а затем отправляет текущее время по возвращаемому каналу. Это эквивалентно NewTimer(d).C. Базовый Timer не восстанавливается сборщиком мусора, пока таймер не истекет. Если важна эффективность, используйте вместо нее NewTimer и вызовите Timer.Stop, если таймер больше не нужен.
Привет использования After
package main
import (
"fmt"
"time"
)
var c chan int
func handle(int) {}
func main() {
select {
case m := <-c:
handle(m)
case <-time.After(3 * time.Second):
fmt.Println("timed out")
}
}
Вывод (после 3 секунд от запуска):
timed out
Функция Sleep
func Sleep(d Duration)
Sleep приостанавливает текущую goroutine как минимум на время d. Отрицательная или нулевая продолжительность приводит к немедленному возвращению Sleep.
Пример использования Sleep
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("Старт")
time.Sleep(3000 * time.Millisecond)
fmt.Println("Финиш")
}
Вывод:
Старт
Финиш
Функция Tick
func Tick(d Duration) <-chan Time
Tick - это удобная оболочка для NewTicker, предоставляющая доступ только к тиковому каналу. Хотя Tick полезен для клиентов, которым нет необходимости выключать Ticker, имейте в виду, что без способа выключить его базовый Ticker не может быть восстановлен сборщиком мусора; это "утечки". В отличие от NewTicker, Tick вернет nil, если d <= 0.
Пример использования Tick
package main
import (
"fmt"
"time"
)
func statusUpdate() string { return "" }
func main() {
c := time.Tick(5 * time.Second)
for next := range c {
fmt.Printf("%v %s\n", next, statusUpdate())
}
}
Вывод:
2020-07-23 19:54:46.764984441 +0500 +05 m=+5.000241495
2020-07-23 19:54:51.764984609 +0500 +05 m=+10.000241638
2020-07-23 19:54:56.76481557 +0500 +05 m=+15.000072594
2020-07-23 19:55:01.765103332 +0500 +05 m=+20.000360383
... // и так каждые 5 секунд
Читайте также:
- Как получить текущую метку времени (timestamp) в Golang
- Количество дней между двумя датами в Golang
- Форматирование времени и даты в Golang
Комментариев нет:
Отправить комментарий