Rust

async/await

funkcje async, trait Future, runtime tokio, bloki async, składnia .await, Streams, Pin<T>, anulowanie, wzorce executora

22 pytań z rozmów·
Mid-Level
1

Co zwraca w Rust funkcja zadeklarowana ze słowem kluczowym async?

Odpowiedź

Funkcja async automatycznie zwraca typ implementujący trait Future. Kompilator przekształca ciało funkcji w maszynę stanów implementującą Future. Wartość zwracana nie jest obliczana natychmiast: zostanie obliczona dopiero wtedy, gdy Future zostanie oczekiwany za pomocą .await lub wykonany przez runtime.

2

Jaka jest główna rola traitu Future w Rust?

Odpowiedź

Trait Future reprezentuje obliczenie asynchroniczne, które może jeszcze nie być zakończone. Jego metoda poll pozwala executorowi sprawdzić, czy Future jest gotowy (Poll::Ready), czy musi czekać (Poll::Pending). To fundamentalny mechanizm asynchroniczności w Rust, umożliwiający nieblokujące i wydajne wykonanie.

3

Dlaczego do wykonywania kodu async w Rust potrzebny jest runtime taki jak tokio?

Odpowiedź

Rust nie zawiera asynchronicznego runtime w bibliotece standardowej, aby utrzymać język minimalnym i umożliwić wybór runtime w zależności od potrzeb. Runtime taki jak tokio dostarcza executor, który odpytuje (poll) Futures, scheduler do zarządzania zadaniami oraz asynchroniczne I/O. Bez runtime Futures nigdy nie zostałyby wykonane.

4

Jaka jest różnica między async block a async function w Rust?

5

Co się dzieje, gdy używamy .await na Future w Rust?

+19 pytań z rozmów

Opanuj Rust na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo