當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。