pub fn sleep(dur: Duration)
Expand description
使当前线程休眠至少指定的时间。
由于调度细节或平台相关的功能,线程的睡眠时间可能比指定的持续时间更长。它永远不会少睡。
该函数正在阻塞,因此不应在 async
函数中使用。
特定于平台的行为
在 Unix 平台上,底层的系统调用可能会由于虚假唤醒或信号处理程序而中断。
为了确保至少在指定的持续时间内发生睡眠,此函数可以多次调用该系统。
不支持纳秒级睡眠精度的平台会将 dur
舍入为最接近的睡眠时间粒度。
目前,在 Unix 平台上指定零持续时间会立即返回,而不会调用底层 nanosleep
syscall,而在 Windows 平台上,始终调用底层 Sleep
syscall。
如果要产生当前时间片,则可能需要使用 yield_now
。
Examples
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);
Run