Подтвердить что ты не робот

Как я могу поместить текущий поток в режим сна?

Существует так много устаревшей информации, что очень сложно выяснить, как спать. Мне бы хотелось что-то похожее на этот Java-код:

Thread.sleep(4000);
4b9b3361

Ответ 1

Обновленный ответ

Это обновленный код текущей версии Rust:

use std::time::Duration;
use std::thread::sleep;

fn main() {
    sleep(Duration::from_millis(2));
}

URL-адрес ржавчины: http://is.gd/U7Oyip

Старый ответ до 1.0

По запросу pull https://github.com/rust-lang/rust/pull/23330 функция, которая заменит старый std::old_io::timer::sleep, будет новой std::thread::sleep.

Описание запроса на вывод GitHub:

Эта функция является текущей заменой std:: old_io:: timer, которая скоро будет устаревать. Эта функция нестабильна и имеет свою собственную поскольку он еще не имеет RFC и не существовал для очень долго.

Пример кода:

#![feature(std_misc, thread_sleep)]

use std::time::Duration;
use std::thread::sleep;

fn main() {
    sleep(Duration::milliseconds(2));
}

Здесь используются sleep и Duration, которые в настоящее время находятся за решеткой функций thread_sleep и std_misc соответственно.

Ответ 2

Rust 1.4 +

Duration и sleep вернулись и стабильны!

use std::time::Duration;
use std::thread;

fn main() {
    thread::sleep(Duration::from_millis(4000))
}

Вы также можете использовать Duration::from_secs(4), что может быть более очевидным в этом случае.

Решение ниже 1.0 будет продолжать работать, если вы этого захотите, из-за характера семантического управления версиями.

Rust 1.0 +

Продолжительность не была стабильной во времени для 1.0, поэтому в городе появилась новая функция - thread::sleep_ms:

use std::thread;

fn main() {
    thread::sleep_ms(4000);
}