2 个版本
0.3.0 | 2019年11月7日 |
---|---|
0.3.0-alpha.19 | 2019年10月22日 |
#1383 in 异步
11KB
155 行
futures-cputask
此库允许您在辅助线程池上运行长时间运行的 CPU 密集型任务,并接收一个您可以等待的未来。
特性
-
使用 Futures 0.3.0
-
支持 Async/Await
-
在辅助线程池上运行任务以避免阻塞主执行器线程之一
-
支持使用各自的 cargo 功能从
threadpool
和uvth
使用它们的线程池 -
具有允许与其他线程池实现互操作的 trait
-
包含一个可选的自定义属性
async_task
,将常规函数转换为异步函数(注意:目前此功能仅与
threadpool
和uvth
线程池一起工作)
使用方法
将此添加到您的 Cargo.toml
futures-cputask = "0.3.0"
如果您想使用自定义属性,请添加此内容
[dependencies.futures-cputask]
version = "0.3.0"
features = ["derive"]
示例
use futures_cputask::async_task;
#[async_task]
fn long_running_task() -> i64 {
(0..100_000_000).fold(0i64, |a, b| a.wrapping_add(b))
}
许可证
根据您的选择,许可如下
- Apache License,版本 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则任何有意提交以包含在作品中的贡献,根据 Apache-2.0 许可证的定义,应如上所述双许可,不附加任何额外条款或条件。
依赖关系
~1.8–2.5MB
~45K SLoC