33个版本

0.3.30 2023年12月24日
0.3.29 2023年10月26日
0.3.28 2023年3月30日
0.3.25 2022年10月20日
0.2.0-beta2018年3月20日

#165 in 异步

Download history 1631940/week @ 2024-04-10 1634044/week @ 2024-04-17 1645216/week @ 2024-04-24 1554437/week @ 2024-05-01 1533494/week @ 2024-05-08 1595161/week @ 2024-05-15 1543406/week @ 2024-05-22 1694914/week @ 2024-05-29 1720810/week @ 2024-06-05 1730569/week @ 2024-06-12 1652655/week @ 2024-06-19 1706643/week @ 2024-06-26 1561139/week @ 2024-07-03 1722248/week @ 2024-07-10 1756001/week @ 2024-07-17 1480246/week @ 2024-07-24

6,837,215每月下载量
4,711 个crate中(直接使用191个)

MIT/Apache

700KB
13K SLoC

futures-executor

基于futures-rs库的异步任务执行器。

使用方法

将以下内容添加到您的 Cargo.toml

[dependencies]
futures-executor = "0.3"

当前的 futures-executor 需要 Rust 1.56 或更高版本。

许可证

在您的选择下,受Apache License, Version 2.0MIT许可证约束。

除非您明确声明,否则任何有意提交以包含在本作品中的贡献,如Apache-2.0许可证中定义,应如上所述双重许可,而无需任何额外的条款或条件。


lib.rs:

内置执行器和相关工具。

所有异步计算都在执行器内发生,执行器能够将futures作为任务启动。此模块提供了几个内置执行器,以及构建您自己的工具。

所有项目仅在激活此库的 std 功能时可用,并且默认情况下会激活。

使用线程池(M:N任务调度)

大多数情况下,任务应该在线程池上执行。一组小的工人线程可以处理大量启动的任务(这些任务的重量比线程轻得多)。使用 spawn_ok 函数在池中启动的任务将在创建的线程上隐式运行。

启动附加任务

任务可以通过调用其 spawn_obj 方法直接在生成器上生成。对于 !Send 未来,可以使用 spawn_local_obj 代替。

单线程执行

除了线程池,还可以通过 LocalPool 执行器在单个线程中运行任务(及其生成的任务)。除了减少同步成本外,此执行器还可以通过 spawn_local_obj 生成非 Send 任务。适用于运行 I/O 绑定任务,这些任务在 I/O 操作之间做相对较少的工作。

还有一个方便的函数 block_on,可以在当前线程上简单地运行一个未来直到完成。

依赖项