async
/await
At a high level, async Rust code looks very much like "normal" sequential code:
Speaker Notes
This slide should take about 6 minutes.
Schlüsselpunkte:
-
Note that this is a simplified example to show the syntax. There is no long running operation or any real concurrency in it!
-
The "async" keyword is syntactic sugar. The compiler replaces the return type with a future.
-
You cannot make
main
async, without additional instructions to the compiler on how to use the returned future. -
You need an executor to run async code.
block_on
blocks the current thread until the provided future has run to completion. -
.await
asynchronously waits for the completion of another operation. Unlikeblock_on
,.await
doesn't block the current thread. -
.await
can only be used inside anasync
function (or block; these are introduced later).