Rust

async/await

async функції, trait Future, runtime tokio, async блоки, синтаксис .await, Streams, Pin<T>, скасування, патерни executor

22 питань зі співбесід·
Mid-Level
1

Що повертає в Rust функція, оголошена з ключовим словом async?

Відповідь

Функція async автоматично повертає тип, який реалізує trait Future. Компілятор перетворює тіло функції на машину станів, яка реалізує Future. Значення, що повертається, не обчислюється одразу: воно буде обчислене лише тоді, коли Future очікується через .await або виконується runtime.

2

Яка основна роль trait Future в Rust?

Відповідь

Trait Future представляє асинхронне обчислення, яке може бути ще не завершеним. Його метод poll дозволяє executor перевіряти, чи Future готовий (Poll::Ready), чи має чекати (Poll::Pending). Це фундаментальний механізм асинхронності в Rust, що забезпечує неблокувальне та ефективне виконання.

3

Чому для виконання async-коду в Rust потрібен runtime, як-от tokio?

Відповідь

Rust не включає асинхронний runtime до своєї стандартної бібліотеки, щоб зберегти мову мінімальною та дозволити вибір runtime залежно від потреб. Runtime, як-от tokio, надає executor, що опитує (poll) Futures, scheduler для керування завданнями та асинхронне I/O. Без runtime Futures ніколи б не виконувалися.

4

Яка різниця між async block та async function в Rust?

5

Що відбувається, коли використовується .await на Future в Rust?

+19 питань зі співбесід

Опануй Rust для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно