Skip to content

Commit

Permalink
Update ch17-01-futures-and-syntax.md
Browse files Browse the repository at this point in the history
  • Loading branch information
fuxingZhang authored Dec 31, 2024
1 parent 717a922 commit 07453dd
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/ch17-01-futures-and-syntax.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ error[E0752]: `main` function is not allowed to be `async`

`main` 不能标记为 `async` 的原因是异步代码需要一个 *运行时*:即一个管理执行异步代码细节的 Rust crate。一个程序的 `main` 函数可以 *初始化* 一个运行时,但是其 *自身* 并不是一个运行时。(稍后我们会进一步解释原因。)每一个执行异步代码的 Rust 程序必须至少有一个设置运行时并执行 futures 的地方。

大部分支持异步的语言会打包一个运行时在语言中Rust 则不是,相这里有很多不同的异步运行时,每一个都有适合其目标的权衡取舍。例如,一个拥有很多核心和大量内存的高吞吐 web server 与一个单核、少量内存并且没有堆分配能力的微控制器相比有着截然不同的需求。提供这些运行时的 crate 通常也提供了例如文件或者网络 IO 这类常用功能的异步版本。
大部分支持异步的语言会打包一个运行时在语言中Rust 则不是。相反,这里有很多不同的异步运行时,每一个都有适合其目标的权衡取舍。例如,一个拥有很多核心和大量内存的高吞吐 web server 与一个单核、少量内存并且没有堆分配能力的微控制器相比有着截然不同的需求。提供这些运行时的 crate 通常也提供了例如文件或者网络 IO 这类常用功能的异步版本。

从这里到本章余下部分,我们会使用 `trpl` crate 的 `run` 函数,它获取一个 future 作为参数并运行到结束。在内部,调用 `run` 会设置一个运行时来运行传递的 future。一旦 future 完成,`run` 返回 future 返回的任何值。

Expand Down

0 comments on commit 07453dd

Please sign in to comment.