Ранее мы рассматривали, как можно выполнять код через периоды времени. В данной инструкции будет показано, как выполнить код с задержкой.

Как выполнить код с задержкой?

1. Создайте файл delay.go со следующим содержимым:

Премиум 👑 канал по Golang

Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎

Подписаться на канал

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК ЧАТ в Telegram


2. Запустите код через go run delay.go в терминале;
3. Посмотрите на результат:

Для единичного выполнения кода с задержкой можно использовать Timer из пакета time. Концепт данного процесса аналогичен тому, что мы задействовали в инструкции для «Запуска разных блоков кода через промежутки времени».

Timer содержит канал C, что поставляет сигналы тиканья через данные промежутки времени. После этого через этот канал не поставляется ни один тик.

Такая же функциональность поставляет функция AfterFunc из пакета time. Это просто упрощает использование. Обратите внимание, что здесь не требуется канал. Код примера использует sync.WaitGroup для ожидания, пока функция не будет выполнена.

В предыдущем примере time.After является последней опцией. Функция возвращает канал, что поставляет сигнал тиканья после данного промежутка. Обратите внимание на разницу между функциями Timer и After. Timer является переиспользуемой структурой (она предоставляет методы Stop и Reset). С другой стороны, функция After может использоваться только один раз, так как она не предоставляет никакой опции для перезапуска.

5 2 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии