Tokio 反应器是否轮询每个组合器之间所有可能的 poll() 函数?

Does the Tokio reactor poll all possible poll() functions between each combinator?

poll 的调用永远不会阻塞,否则异步核心执行的整个线程将被阻塞,停止所有可能的因果关系,直到阻塞函数 returns.

我在反应器上生成了一个未来,并且有一系列组合器,例如 my_future.and_then(…).map(…).then(…)

反应器轮询未来,然后在执行下一个 and_then 组合器之前,反应器是否遍历所有其他未来,检查它们是否准备就绪,或者反应器是否跟进所有my_future.and_then(…).map(…).then(…)?

的组合步骤

我问这个问题是因为考虑到异步核心的因果关系,知道如何设计我的程序很重要。

就异步执行程序所知,没有 中间步骤。每个组合器 消耗 以前的未来,产生一个全新的未来。最后,一个单一的未来被交给执行者,它根据需要在那个未来上调用 poll

由每个父 future 决定是否以及何时轮询任何子 future,但这只能在轮询父 future 时发生。

另请参阅: