
async/await
async functions, Future trait, tokio runtime, async blocks, .await syntax, Streams, Pin<T>, cancellation, executor patterns
1Que retourne une fonction déclarée avec le mot-clé async en Rust ?
Que retourne une fonction déclarée avec le mot-clé async en Rust ?
Réponse
Une fonction async retourne automatiquement un type qui implémente le trait Future. Le compilateur transforme le corps de la fonction en une machine à états qui implémente Future. La valeur retournée n'est pas calculée immédiatement : elle ne le sera que lorsque le Future sera attendu avec .await ou exécuté par un runtime.
2Quel est le rôle principal du trait Future en Rust ?
Quel est le rôle principal du trait Future en Rust ?
Réponse
Le trait Future représente une computation asynchrone qui peut ne pas être encore terminée. Sa méthode poll permet à l'executor de vérifier si le Future est prêt (Poll::Ready) ou doit attendre (Poll::Pending). C'est le mécanisme fondamental de l'asynchronisme en Rust, permettant une exécution non-bloquante et efficace.
3Pourquoi est-il nécessaire d'avoir un runtime comme tokio pour exécuter du code async en Rust ?
Pourquoi est-il nécessaire d'avoir un runtime comme tokio pour exécuter du code async en Rust ?
Réponse
Rust n'inclut pas de runtime asynchrone dans sa bibliothèque standard pour garder le langage minimal et permettre le choix du runtime selon les besoins. Un runtime comme tokio fournit l'executor qui poll les Futures, le scheduler pour gérer les tâches, et les I/O asynchrones. Sans runtime, les Futures ne seraient jamais exécutés.
Quelle est la différence entre un async block et une async function en Rust ?
Que se passe-t-il lorsqu'on utilise .await sur un Future en Rust ?
+19 questions d'entretien
Autres sujets d'entretien Rust
Les bases de Rust
Ownership & Borrowing
Structs & Enums
Gestion des erreurs
Collections
Modules & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
Testing
Cargo & Ecosystem
Pattern Matching
Macros
Serde & Serialization
Unsafe Rust
Traits Avancés
Lifetimes Avancés
Type System
Tokio & Async I/O
Optimisation de Performance
Memory Management
Web Frameworks
Database Integration
Design Patterns Rust
Maîtrise Rust pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement