当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust sleep用法及代码示例


本文简要介绍rust语言中 Function std::thread::sleep 的用法。

用法

pub fn sleep(dur: Duration)

使当前线程休眠至少指定的时间。

由于调度细节或平台相关函数,线程可能会比指定的持续时间更长。它永远不会少睡。

此函数是阻塞的,不应在async 函数中使用。

特定于平台的行为

在 Unix 平台上,底层系统调用可能会被虚假唤醒或信号处理程序中断。为了确保睡眠至少在指定的持续时间内发生,此函数可能会多次调用该系统调用。不支持纳秒级睡眠精度的平台将 dur 向上舍入到它们可以睡眠的最接近的时间粒度。

目前,在 Unix 平台上指定零持续时间会立即返回,而不会调用底层的 nanosleep 系统调用,而在 Windows 平台上,始终会调用底层的 Sleep 系统调用。如果打算产生当前时间片,您可能需要改用 yield_now

例子

use std::{thread, time};

let ten_millis = time::Duration::from_millis(10);
let now = time::Instant::now();

thread::sleep(ten_millis);

assert!(now.elapsed() >= ten_millis);

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Function std::thread::sleep。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。