
Tokio & Async I/O
Tokio runtime, async tasks, select!, join!, timeout, tokio::spawn, async file/network I/O
1Quel est le rôle principal du runtime Tokio dans une application Rust asynchrone ?
Quel est le rôle principal du runtime Tokio dans une application Rust asynchrone ?
Réponse
Le runtime Tokio fournit un executor qui poll les futures jusqu'à leur complétion. Il gère également un scheduler multi-thread (par défaut) pour distribuer les tâches sur plusieurs threads OS, ainsi qu'un reactor pour les opérations I/O asynchrones. Sans runtime, les futures Rust ne font rien car elles sont lazy par défaut.
2Comment initialiser le runtime Tokio avec la macro #[tokio::main] ?
Comment initialiser le runtime Tokio avec la macro #[tokio::main] ?
Réponse
La macro #[tokio::main] transforme une fonction async main() en un point d'entrée synchrone qui crée un runtime Tokio multi-thread et exécute la fonction async. Cette macro génère automatiquement le boilerplate nécessaire pour créer le runtime et bloquer jusqu'à la complétion de la future principale.
3Quelle est la différence entre #[tokio::main] et #[tokio::main(flavor = "current_thread")] ?
Quelle est la différence entre #[tokio::main] et #[tokio::main(flavor = "current_thread")] ?
Réponse
Par défaut, #[tokio::main] crée un runtime multi-thread qui distribue les tâches sur un pool de worker threads. Avec flavor = "current_thread", le runtime exécute toutes les tâches sur le thread principal uniquement, ce qui est utile pour les tests, les applications simples ou quand le partage de données entre threads doit être évité.
Que fait tokio::spawn() et quel type retourne-t-il ?
Pourquoi les futures passées à tokio::spawn() doivent-elles être 'static ?
+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
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macros
Serde & Serialization
Unsafe Rust
Traits Avancés
Lifetimes Avancés
Type System
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