3 个不稳定版本

0.3.0 2022年3月10日
0.2.1 2019年3月23日
0.2.0 2017年9月28日

#3#joining

Download history 236/week @ 2024-04-20 257/week @ 2024-04-27 117/week @ 2024-05-04 54/week @ 2024-05-11 200/week @ 2024-05-18 44/week @ 2024-05-25 133/week @ 2024-06-01 46/week @ 2024-06-08 27/week @ 2024-06-15 33/week @ 2024-06-22 111/week @ 2024-06-29 48/week @ 2024-07-06 61/week @ 2024-07-13 47/week @ 2024-07-20 126/week @ 2024-07-27 84/week @ 2024-08-03

320 每月下载量
3 个 crate(2 个直接) 中使用

MIT/Apache

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 许可证定义的任何旨在包含在作品中的贡献,将按照上述方式双重许可,不附加任何其他条款或条件。

依赖

~43KB