3 个不稳定版本
0.3.0 | 2022年3月10日 |
---|---|
0.2.1 | 2019年3月23日 |
0.2.0 | 2017年9月28日 |
#3 在 #joining
320 每月下载量
在 3 个 crate(2 个直接) 中使用
11KB
145 代码行
thread_tryjoin
它是由 https://github.com/badboy/thread_tryjoin-rs 分支出来的
是否曾经需要等待线程完成,但又认为你仍然可以在它完成之前继续工作?
JoinHandle#join()
等待线程完成且是阻塞的,因此不允许你反复尝试。
幸运的是,有一个非便携的 pthread
API:pthread_tryjoin_np
此库通过在 JoinHandle
上提供 try_join
方法方便地访问。但它仅在 Linux 上工作。
它使用 JoinHandleExt
来获取底层的 pthread_t
处理器。
用法
[dependencies]
thread_tryjoin = "0.2"
示例
use std::time::Duration;
use std::thread;
use thread_tryjoin::TryJoinHandle;
let t = thread::spawn(|| { thread::sleep(Duration::from_secs(1)); });
assert!(t.try_join().is_err());
许可
许可为以下之一
- Apache 许可证版本 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
根据您的选择。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的任何旨在包含在作品中的贡献,将按照上述方式双重许可,不附加任何其他条款或条件。
依赖
~43KB