
Concurrency Basics
Threads, thread::spawn, move closures, channels (mpsc), Send & Sync traits, thread safety
1Quelle fonction utiliser pour créer un nouveau thread en Rust ?
Quelle fonction utiliser pour créer un nouveau thread en Rust ?
Réponse
La fonction thread::spawn du module std::thread permet de créer un nouveau thread d'exécution. Elle prend une closure en paramètre et retourne un JoinHandle qui permet d'attendre la fin du thread avec la méthode join(). Cette fonction est le point d'entrée principal pour la programmation concurrente basée sur les threads en Rust.
2Que retourne la méthode join() appelée sur un JoinHandle ?
Que retourne la méthode join() appelée sur un JoinHandle ?
Réponse
La méthode join() retourne un Result<T, E> où T est le type de retour de la closure du thread. Si le thread se termine normalement, on obtient Ok(valeur). Si le thread a paniqué, on obtient Err contenant les informations du panic. Cela permet de récupérer les résultats du thread ou de gérer ses erreurs de manière sécurisée.
3Pourquoi utiliser le mot-clé move avec une closure passée à thread::spawn ?
Pourquoi utiliser le mot-clé move avec une closure passée à thread::spawn ?
Réponse
Le mot-clé move force la closure à prendre ownership des variables qu'elle capture au lieu de les emprunter. C'est essentiel avec thread::spawn car le nouveau thread peut vivre plus longtemps que la portée où les variables sont définies. Sans move, le compilateur refuse car il ne peut pas garantir que les références seront valides pendant toute la durée de vie du thread.
Quel est le rôle du trait Send en Rust ?
Quel est le rôle du trait Sync en Rust ?
+17 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
async/await
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