18个版本

0.2.0-alpha.62019年9月30日
0.2.0-alpha.42019年8月29日
0.1.10 2020年2月5日
0.1.8 2019年7月3日
0.1.2 2018年3月30日

#72 in #blocking

Download history 34507/week @ 2023-11-30 37436/week @ 2023-12-07 33102/week @ 2023-12-14 19353/week @ 2023-12-21 21106/week @ 2023-12-28 33801/week @ 2024-01-04 33089/week @ 2024-01-11 35802/week @ 2024-01-18 34449/week @ 2024-01-25 35496/week @ 2024-02-01 35384/week @ 2024-02-08 42102/week @ 2024-02-15 43867/week @ 2024-02-22 46631/week @ 2024-02-29 44639/week @ 2024-03-07 37782/week @ 2024-03-14

181,085 每月下载量
用于 少于 41 crates

MIT 许可证

300KB
5K SLoC

tokio-executor

任务执行相关特性和工具。

许可证

本项目采用MIT许可证

贡献

除非你明确声明,否则你提交给Tokio的所有有意贡献都将被许可为MIT,不附加任何额外条款或条件。


lib.rs:

任务执行相关特性和工具。

在Tokio执行模型中,未来是懒的。当创建未来时,不会执行任何操作。为了使未来定义的操作发生,必须将未来提交给执行器。提交给执行器的是“任务”。

执行器负责确保在任务通知时调用 Future::poll。通知发生在任务内部状态从“未准备好”过渡到“准备好”时。例如,套接字可能已经接收到数据,调用 read 现在将能够成功。

此crate提供构建执行器所需的特性和工具,包括

  • Executor 特性将未来对象在执行器上启动。

  • TypedExecutor 特性将特定类型的未来在执行器上启动。这用于泛型化启动未来为 Send!Send 的执行器或针对特定未来应用的执行器。

  • enter 标记当前线程正在进入执行上下文。这可以防止第二个执行器在已运行的上下文中意外启动。

  • DefaultExecutor 将任务提交给当前上下文的默认执行器。

  • Park 抽象化了当前线程的阻塞和解阻塞。

实现执行器

执行器应该始终实现 TypedExecutor。这通常是应用程序和库在泛型执行器时使用的限制。有关更多详细信息,请参阅 特性行为文档

如果执行器能够启动所有 Send 的未来,则执行器还应实现 Executor 特性行为。这个特性行为很少直接由应用程序和库使用。相反,tokio::spawn 被配置为调度实现 Executor 的类型。

依赖项

~0.8–1MB
~19K SLoC