Function d_futures_rs

Source
pub fn d_futures_rs()
Expand description

§深入理解 Future 和 Futures-rs

回顾 Rust 异步 task 模型

    +------------------------------------------------------------------+
    |                                                                  |
    |    +--------------------------------------------------------+    |
    |    |                                                        |    |
    |    |   +-------------------------------------------------+  |    |
    |    |   |-------------+ +----------+ +--------------+     |  |    |
    |    |   || futureobj  | | futureobj| |  futureobj   |     |  |    |
    |    |   +-------------+ +----------+ +--------------+     |  |    |
    |    |   | 协 程  task                                      |  |    |
    |    |   +-------------------------------------------------+  |    |
    |    |                                                        |    |
    |    | 线 程                                                   |    |
    |    +--------------------------------------------------------+    |
    |                                                                  |
    |                                                                  |
    |    +--------------------------------------------------------+    |
    |    |  +--------------------------------------------------+  |    |
    |    |  |                                                  |  |    |
    |    |  |   +------------+ +-------------------------------+  |    |
    |    |  |   | futureobj  | |  futureobj      || futureobj ||  |    |
    |    |  |   +------------+ +-------------------------------+  |    |
    |    |  |  协 程 task                                      |  |    |
    |    |  +--------------------------------------------------+  |    |
    |    | 线 程                                                   |    |
    |    +--------------------------------------------------------+    |
    |                                                                  |
    | 进  程                                                            |
    +------------------------------------------------------------------+

  1. 理解 leaf-futures vs Non-leaf-futures (async/await)
  2. 理解 Waker:

当事件源注册该Future将在某个事件上等待时,它必须存储唤醒程序,以便以后可以调用唤醒来开始唤醒阶段。 为了引入并发性,能够同时等待多个事件非常重要,因此唤醒器不可能由单个事件源唯一拥有。 结果,Waker类型需要是实现 Clone 的。

  1. 理解并发(waker 并发 和 poll 并发)

深入 Futures-rs: