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

时间:2015-03-09 22:30:36

标签: rust sleep

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

Thread.sleep(4000);

2 个答案:

答案 0 :(得分:30)

Rust 1.4 +

Durationsleep已退回并且稳定!

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);
}

答案 1 :(得分:11)

更新回答

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

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

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

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));
}

这使用sleepDuration,它们分别位于thread_sleepstd_misc的功能门之后。