Введение в асинхронность в Rust
Асинхронная функция может ждать, не блокируя остальные задачи на том же исполнителе. Пока одна работа стоит на ожидании, другие шаги успевают выполниться в том же потоке.
Такой код не создает новый поток ОС на каждый шаг: переключение происходит внутри исполнителя, когда функция честно отдает управление до готовности результата.
В этом разделе разберем точку ожидания, метку на главной функции, фоновую задачу, сбор нескольких результатов и предел по времени. Сложные темы вроде ручного закрепления в памяти или выбора между многими ожиданиями здесь не затрагиваем.
Примеры соберем в проекте Cargo с внешним крейтом для исполнителя. Каждый шаг опирается на предыдущий, а в конце закрепим приемы на коротких задачах.