本文簡要介紹rust語言中 Function std::thread::park_timeout
的用法。
用法
pub fn park_timeout(dur: Duration)
阻塞,除非或直到當前線程的令牌可用或已達到指定的持續時間(可能會虛假喚醒)。
這個函數的語義等價於 park
,除了線程將被阻塞大約不超過dur
。由於搶占或平台差異等異常情況可能不會導致最大等待時間精確為dur
long,因此不應將此方法用於精確計時。
有關更多詳細信息,請參閱park documentation。
特定於平台的行為
不支持納秒級睡眠精度的平台將 dur
向上舍入到它們可以睡眠的最接近的時間粒度。
例子
等待超時完全到期:
use std::thread::park_timeout;
use std::time::{Instant, Duration};
let timeout = Duration::from_secs(2);
let beginning_park = Instant::now();
let mut timeout_remaining = timeout;
loop {
park_timeout(timeout_remaining);
let elapsed = beginning_park.elapsed();
if elapsed >= timeout {
break;
}
println!("restarting park_timeout after {:?}", elapsed);
timeout_remaining = timeout - elapsed;
}
相關用法
- Rust park用法及代碼示例
- Rust panicking用法及代碼示例
- Rust panic用法及代碼示例
- Rust pointer.offset_from用法及代碼示例
- Rust pointer.is_null用法及代碼示例
- Rust pointer.add用法及代碼示例
- Rust pointer.get_unchecked用法及代碼示例
- Rust pointer.align_offset用法及代碼示例
- Rust pointer.wrapping_add用法及代碼示例
- Rust pointer.wrapping_offset用法及代碼示例
- Rust pointer.wrapping_sub用法及代碼示例
- Rust poll_fn用法及代碼示例
- Rust pointer.as_uninit_ref用法及代碼示例
- Rust pointer.len用法及代碼示例
- Rust pointer.get_unchecked_mut用法及代碼示例
- Rust pointer.sub用法及代碼示例
- Rust pointer.set_ptr_value用法及代碼示例
- Rust println用法及代碼示例
- Rust pointer.as_ptr用法及代碼示例
- Rust pointer.as_mut_ptr用法及代碼示例
- Rust pending用法及代碼示例
- Rust pointer用法及代碼示例
- Rust print用法及代碼示例
- Rust pointer.offset用法及代碼示例
- Rust pointer.as_mut用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Function std::thread::park_timeout。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。