2.1 `async`/`await`
01-
async/await — Comprehensive Rust1分钟内可阅读完
译文 · 基于 Comprehensive Rust
原文链接: https://google.github.io/comprehensive-rust/concurrency/async/async-await.html
2.1 async/await
从高层看,异步 Rust 代码看起来很像「普通」顺序代码:
| |
要点:
注意这是展示语法的简化示例。其中没有长时间运行的操作,也没有真正的并发!
async关键字是语法糖。编译器会把返回类型替换成 future。不能把
main做成 async,除非额外指示编译器如何使用返回的 future。需要 executor 来运行异步代码。
block_on会阻塞当前线程,直到所提供的 future 运行完成。
.await异步等待另一操作完成。与block_on不同,.await不会阻塞当前线程。
.await只能用在async函数(或块;稍后介绍)内部。