11 个稳定版本
2.2.0 | 2023年10月18日 |
---|---|
2.1.1 | 2023年9月25日 |
2.1.0 | 2023年4月7日 |
2.0.0 | 2020年8月4日 |
1.0.1 | 2020年5月28日 |
#178 in 并发
2,996,591 每月下载量
用于 5,182 个 Crates(8 直接使用)
17KB
191 代码行
parking
线程停车和唤醒。
停车器处于通知或未通知状态。方法 park()
阻塞当前线程,直到停车器被通知,然后将其放回未通知状态。方法 unpark()
将其置于通知状态。
示例
use std::thread;
use std::time::Duration;
use parking::Parker;
let p = Parker::new();
let u = p.unparker();
// Notify the parker.
u.unpark();
// Wakes up immediately because the parker is notified.
p.park();
thread::spawn(move || {
thread::sleep(Duration::from_millis(500));
u.unpark();
});
// Wakes up when `u.unpark()` notifies and then goes back into unnotified state.
p.park();
许可证
许可协议为以下之一
- Apache 许可证2.0版本 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的任何有意提交以包含在作品中的贡献,均应按上述方式双许可,不得附加任何额外条款或条件。
依赖项
~0–24MB
~333K SLoC