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

标签 asynchronous rust rust-tokio

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

我在 react 堆上生成了一个 future,并且有一系列组合器,例如 my_future.and_then(…).map(…).then(…)

react 器轮询 future ,然后在执行下一个 and_then 组合器之前, react 器是否迭代所有其他 future ,检查它们是否准备好,或者 react 器是否继续执行my_future.and_then(…).map(…).then(…) 的所有组合步骤?

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

最佳答案

据异步执行器所知,没有中间步骤。每个组合器消耗以前的 future ,产生一个全新的 future 。最后,一个 future 被交给执行者,并根据需要调用该 future 的 poll

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

另请参阅:

关于asynchronous - Tokio react 器是否轮询每个组合器之间所有可能的 poll() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56757601/

相关文章:

audio - 如何在 rust 迹中写入带有标记的wav文件?

rust - 如何创建带有类型删除键的 HashMap?

asynchronous - 从 UdpSocket 异步读取

rust - 如何使用 Tokio 远程关闭正在运行的任务

ios - 为什么 UITableViewCell 首先显示以前的值,然后才更新自身?

Swift:判断NSProgressIndicator,异步刷新等待返回

c# - 实现会改变 await 的行为吗?

c# - 同步实现异步方法

rust - 在每次循环迭代中删除借位

error-handling - 如何使用问号运算符来处理 Tokio future 中的错误?