如何让当前线程进入睡眠状态?

Tia*_*ago 26 sleep rust

有太多过时的信息,很难找到如何睡觉.我想要类似于这个Java代码的东西:

Thread.sleep(4000);
Run Code Online (Sandbox Code Playgroud)

She*_*ter 34

Rust 1.4+

Duration并且sleep已经返回并且稳定!

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

fn main() {
    thread::sleep(Duration::from_millis(4000))
}
Run Code Online (Sandbox Code Playgroud)

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

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

Rust 1.0+

持续时间没有达到1.0的稳定时间,所以城里有一个新的功能 - thread::sleep_ms:

use std::thread;

fn main() {
    thread::sleep_ms(4000);
}
Run Code Online (Sandbox Code Playgroud)


Tia*_*ago 11

更新的答案

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

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

fn main() {
    sleep(Duration::from_millis(2));
}
Run Code Online (Sandbox Code Playgroud)

Rust play url:http://is.gd/U7Oyip

1.0之前的旧答案

根据拉取请求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));
}
Run Code Online (Sandbox Code Playgroud)

这使用sleepDuration,这是目前的特点门背后thread_sleepstd_misc分别.