Introduction
Dans ce laboratoire, nous avons un extrait de code en Rust qui montre comment créer des threads natifs du système d'exploitation à l'aide de la fonction spawn et d'une closure mobile. Le code crée un vecteur pour stocker les threads créés, itère sur une plage de nombres pour créer plusieurs threads et imprime un message identifiant chaque numéro de thread. Enfin, le thread principal attend que chaque thread créé se termine à l'aide de la fonction join.
Note : Si le laboratoire ne spécifie pas de nom de fichier, vous pouvez utiliser n'importe quel nom de fichier que vous voulez. Par exemple, vous pouvez utiliser
main.rs, le compiler et l'exécuter avecrustc main.rs &&./main.
Threads
Rust fournit un mécanisme pour créer des threads natifs du système d'exploitation via la fonction spawn, l'argument de cette fonction est une closure mobile.
use std::thread;
const NTHREADS: u32 = 10;
// Ceci est le thread `main`
fn main() {
// Crée un vecteur pour stocker les threads enfants créés.
let mut children = vec![];
for i in 0..NTHREADS {
// Lance un autre thread
children.push(thread::spawn(move || {
println!("ceci est le thread numéro {}", i);
}));
}
for child in children {
// Attend que le thread se termine. Renvoie un résultat.
let _ = child.join();
}
}
Ces threads seront planifiés par le système d'exploitation.
Summary
Félicitations! Vous avez terminé le laboratoire sur les Threads. Vous pouvez pratiquer d'autres laboratoires dans LabEx pour améliorer vos compétences.