diff --git a/async-book-ru/src/03_async_await/01_chapter.md b/async-book-ru/src/03_async_await/01_chapter.md index 22ec826..dce5dd2 100644 --- a/async-book-ru/src/03_async_await/01_chapter.md +++ b/async-book-ru/src/03_async_await/01_chapter.md @@ -1,6 +1,6 @@ # `async`/`.await` -В [первой главе] мы бросили беглый взгляд на `async`/`.await` и использовали их чтобы построить простой сервер. В этой главе мы обсудим `async`/`.await` более подробно, объясняя, как они работают и чем `async`-код отличается от традиционных программ на Rust. +В [первой главе] мы бросили беглый взгляд на `async`/`.await`. В этой главе мы обсудим `async`/`.await` более подробно, объясняя, как они работают и чем `async`-код отличается от традиционных программ на Rust. `async`/`.await` - это специальный синтаксис Rust, который позволяет не блокировать поток, а передавать управление другому коду, пока ожидается завершение операции. @@ -49,4 +49,4 @@ Точно так же не очень хорошая идея держать традиционную non-futures-aware блокировку через `.await`, так как это может привести к блокировке пула потоков: одна задача может получить объект блокировки, вызвать `.await` и передать управление исполнителю, разрешив другой задаче совершить попытку взять блокировку, что вызовет взаимную блокировку. Чтобы избежать этого, используйте `Mutex` из `futures::lock`, а не из `std::sync`. -[первой главе]: ../01_getting_started/04_async_await_primer.md \ No newline at end of file +[первой главе]: ../01_getting_started/04_async_await_primer.md