Premiers threads et parallélisme Thread
1. Introduction
La façon triviale de créer un thread en langage Rust consiste en l’usage d’une fonction nommée spawn, disponible dans un module dédié aux threads, nommé thread. spawn
La documentation de cette fonction est disponible à cette adresse : https://doc.rust-lang.org/std/thread/fn.spawn.html
La documentation du module est disponible à cette adresse : https://doc.rust-lang.org/std/thread/index.html
Ce module fournit les outils permettant de créer de nouveaux threads, quel que soit le système d’exploitation sur lequel se compile le programme. Il offre aussi un certain nombre d’outils de communication entre threads.
2. Usage de spawn
a. Introduction
On commence par créer un petit projet dédié à nos premiers exemples :
cargo new first_threads --bin
> Created binary (application) `first_threads` package
Dans celui-ci, on déclare le module dont on a besoin :
use std::thread;
Puis on crée un nouveau thread grâce à spawn qui, pour le moment, ne fera rien du tout :
use std::thread;
fn main() {
thread::spawn(move || {
// On ne fait rien dans ce thread.
});
} spawn move
Il n’y a rien de très spectaculaire dans ce code, d’autant qu’on ne peut pas vraiment vérifier...