Функция sleep
pub fn sleep(duration: Duration) -> Sleep ⓘ
time.Ожидает истечения duration.
Эквивалентно sleep_until(Instant::now() + duration). Асинхронный аналог std::thread::sleep.
Во время ожидания завершения будущего sleep никакая работа не выполняется. Sleep работает с точностью до миллисекунды и не должен использоваться для задач, требующих таймеров высокой точности. Реализация зависит от платформы, и на некоторых платформах (в частности, в Windows) таймеры имеют точность ниже 1 мс.
Чтобы выполнять действия регулярно по расписанию, см. interval.
Отмена
Чтобы отменить экземпляр sleep, достаточно удалить возвращённое будущее. Дополнительная очистка не требуется.
Примеры
Подождать 100 мс и вывести «Прошло 100 мс».
use tokio::time::{sleep, Duration};
sleep(Duration::from_millis(100)).await;
println!("100 ms have elapsed");Другие примеры см. в документации типа Sleep.
Паники
Эта функция вызывает панику, если текущий таймер не задан.
Это может произойти, если в builder не включены Builder::enable_time или Builder::enable_all.
Паника также может возникнуть при создании таймера вне среды выполнения Tokio. Поэтому rt.block_on(sleep(...)) вызывает панику, поскольку функция выполняется вне среды выполнения. В то же время rt.block_on(async {sleep(...).await}) не вызывает панику. Это происходит потому, что обёртывание функции в async делает её ленивой, и она успешно выполняется внутри среды выполнения, не вызывая панику.
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/time/fn.sleep.html