如何让当前线程休眠?

How can I put the current thread to sleep?

过时的信息太多了,想睡觉真是一头雾水。我想要类似于此 Java 代码的内容:

Thread.sleep(4000);

生锈 1.4+

Duration and sleep回归稳定!

use std::{thread, time::Duration};

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

您也可以使用 Duration::from_secs(4),在这种情况下可能更明显。

由于语义版本控制的性质,如果您愿意,下面的 1.0 解决方案将继续有效。

生锈 1.0+

持续时间在 1.0 中没有及时稳定下来,所以镇上有一个新功能 - thread::sleep_ms:

use std::thread;

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

更新答案

这是当前 Rust 版本的更新代码:

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

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

铁锈游戏url:http://is.gd/U7Oyip

1.0 之前的旧答案

根据拉取请求 https://github.com/rust-lang/rust/pull/23330 将替换旧 std::old_io::timer::sleep 的功能是新的 std::thread::sleep.

GitHub 上的拉取请求说明:

This function is the current replacement for std::old_io::timer which will soon be deprecated. This function is unstable and has its own feature gate as it does not yet have an RFC nor has it existed for very long.

代码示例:

#![feature(std_misc, thread_sleep)]

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

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

这使用 sleep and Duration,它们目前分别位于 thread_sleepstd_misc 的功能门之后。