Rust

async/await

async functions, Future trait, tokio runtime, async blocks, .await syntax, Streams, Pin<T>, cancellation, executor patterns

22 questions d'entretien·
Confirmé
1

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.

2

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.

3

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.

4

Quelle est la différence entre un async block et une async function en Rust ?

5

Que se passe-t-il lorsqu'on utilise .await sur un Future en Rust ?

+19 questions d'entretien

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