三 Rust中的Futures
概述
Rust中并发性的高级介绍
了解 Rust 在使用异步代码时能提供什么,不能提供什么
了解为什么我们需要 Rust 的运行时库
理解“leaf-future”和“non-leaf-future”的区别
了解如何处理 CPU 密集型任务
Futures
什么是Future
?Future
是一些将在未来完成的操作。
Rust中的异步实现基于轮询,每个异步任务分成三个阶段:
轮询阶段(The Poll phase). 一个
Future
被轮询后,会开始执行,直到被阻塞. 我们经常把轮询一个Future这部分称之为执行器(executor)等待阶段. 事件源(通常称为reactor)注册等待一个事件发生,并确保当该事件准备好时唤醒相应的
Future
唤醒阶段. 事件发生,相应的
Future
被唤醒。现在轮到执行器(executor),就是第一步中的那个执行器,调度Future
再次被轮询,并向前走一步,直到它完成或达到一个阻塞点,不能再向前走, 如此往复,直到最终完成.
当我们谈论Future
的时候,我发现在早期区分non-leaf-future
和leaf-future
是