
async/await
async-Funktionen, Future-Trait, tokio-Runtime, async-Blöcke, .await-Syntax, Streams, Pin<T>, Abbruch, Executor-Patterns
1Was gibt eine mit dem Schlüsselwort async deklarierte Funktion in Rust zurück?
Was gibt eine mit dem Schlüsselwort async deklarierte Funktion in Rust zurück?
Antwort
Eine async-Funktion gibt automatisch einen Typ zurück, der den Future-Trait implementiert. Der Compiler wandelt den Funktionsrumpf in eine Zustandsmaschine um, die Future implementiert. Der Rückgabewert wird nicht sofort berechnet: Er wird erst berechnet, wenn der Future mit .await abgewartet oder von einer Runtime ausgeführt wird.
2Was ist die Hauptaufgabe des Future-Traits in Rust?
Was ist die Hauptaufgabe des Future-Traits in Rust?
Antwort
Der Future-Trait repräsentiert eine asynchrone Berechnung, die möglicherweise noch nicht abgeschlossen ist. Seine poll-Methode ermöglicht es dem Executor zu prüfen, ob der Future bereit ist (Poll::Ready) oder warten muss (Poll::Pending). Das ist der grundlegende Mechanismus der Asynchronität in Rust und ermöglicht eine nicht blockierende und effiziente Ausführung.
3Warum ist eine Runtime wie tokio notwendig, um async-Code in Rust auszuführen?
Warum ist eine Runtime wie tokio notwendig, um async-Code in Rust auszuführen?
Antwort
Rust enthält keine asynchrone Runtime in seiner Standardbibliothek, um die Sprache minimal zu halten und die Wahl der Runtime je nach Bedarf zu ermöglichen. Eine Runtime wie tokio stellt den Executor bereit, der Futures pollt, den Scheduler zur Verwaltung von Tasks sowie asynchrone I/O. Ohne eine Runtime würden Futures niemals ausgeführt.
Was ist der Unterschied zwischen einem async block und einer async function in Rust?
Was passiert, wenn man .await auf einen Future in Rust anwendet?
+19 Interview-Fragen
Weitere Rust-Interviewthemen
Rust-Grundlagen
Ownership & Borrowing
Structs & Enums
Fehlerbehandlung
Collections
Module & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
Testing
Cargo & Ecosystem
Pattern Matching
Makros
Serde & Serialisierung
Unsafe Rust
Fortgeschrittene Traits
Fortgeschrittene Lifetimes
Type System
Tokio & Async I/O
Performance-Optimierung
Memory Management
Web Frameworks
Database Integration
Rust Design Patterns
Meistere Rust für dein nächstes Interview
Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.
Kostenlos starten