Création de threads natifs en Rust

Beginner

This tutorial is from open-source community. Access the source code

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 avec rustc 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.