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-beta | 2018年3月20日 |
#165 in 异步
6,837,215每月下载量
在 4,711 个crate中(直接使用191个)
700KB
13K SLoC
futures-executor
基于futures-rs库的异步任务执行器。
使用方法
将以下内容添加到您的 Cargo.toml
[dependencies]
futures-executor = "0.3"
当前的 futures-executor
需要 Rust 1.56 或更高版本。
许可证
在您的选择下,受Apache License, Version 2.0 或 MIT许可证约束。
除非您明确声明,否则任何有意提交以包含在本作品中的贡献,如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
,可以在当前线程上简单地运行一个未来直到完成。