本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。