
async/await
funkcje async, trait Future, runtime tokio, bloki async, składnia .await, Streams, Pin<T>, anulowanie, wzorce executora
1Co zwraca w Rust funkcja zadeklarowana ze słowem kluczowym async?
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.
2Jaka jest główna rola traitu Future w Rust?
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.
3Dlaczego do wykonywania kodu async w Rust potrzebny jest runtime taki jak tokio?
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.
Jaka jest różnica między async block a async function w Rust?
Co się dzieje, gdy używamy .await na Future w Rust?
+19 pytań z rozmów
Inne tematy rekrutacyjne Rust
Podstawy Rusta
Ownership & Borrowing
Structs & Enums
Obsługa błędów
Kolekcje
Moduły i pakiety
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
Testing
Cargo & Ecosystem
Pattern Matching
Makra
Serde i serializacja
Unsafe Rust
Zaawansowane traity
Zaawansowane Lifetime
Type System
Tokio & Async I/O
Optymalizacja Wydajności
Memory Management
Web Frameworks
Database Integration
Wzorce projektowe w Rust
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