Rust

Concurrency Basics

Threads, thread::spawn, move closures, channels (mpsc), Send & Sync traits, thread safety

20 questions d'entretien·
Confirmé
1

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.

2

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.

3

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.

4

Quel est le rôle du trait Send en Rust ?

5

Quel est le rôle du trait Sync en Rust ?

+17 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