【发布时间】:2023-01-19 03:12:18
【问题描述】:
在阅读 Tokio Rust 文档时,它讨论了将控制权交还给线程。这是否意味着该函数结束了他的执行并返回了一个值?
tokio.rs 的确切引用是:
async fn 定义看起来像一个常规的同步函数,但它是异步运行的。 Rust 在编译时将 async fn 转换为异步操作的例程。在 async fn 中对 .await 的任何调用都会将控制权交还给线程。当操作在后台进行时,线程可能会做其他工作。
【问题讨论】:
-
不,这意味着函数表明它正在等待 IO,任务调度程序现在可以重用同一个线程来运行其他任务。
-
@IvanC 任务调度程序现在如何重试?它只是尝试,如果它失败了继续做其他事情或者比这更复杂?
-
最简单的执行者可能是一个繁忙的循环,反复轮询未来,是的。不过,
tokio之类的东西要复杂得多。
标签: asynchronous rust rust-tokio