Generar hilos nativos en Rust

RustRustBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, tenemos un fragmento de código en Rust que demuestra cómo crear hilos nativos del sistema operativo utilizando la función spawn y una clausura móvil. El código crea un vector para almacenar los hilos creados, itera a través de un rango de números para crear múltiples hilos y muestra un mensaje que identifica el número de cada hilo. Finalmente, el hilo principal espera a que cada hilo creado termine utilizando la función join.

Nota: Si el laboratorio no especifica un nombre de archivo, puede utilizar cualquier nombre de archivo que desee. Por ejemplo, puede utilizar main.rs, compilar y ejecutarlo con rustc main.rs &&./main.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/DataTypesGroup(["Data Types"]) rust(("Rust")) -.-> rust/ControlStructuresGroup(["Control Structures"]) rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust(("Rust")) -.-> rust/DataStructuresandEnumsGroup(["Data Structures and Enums"]) rust(("Rust")) -.-> rust/BasicConceptsGroup(["Basic Concepts"]) rust/BasicConceptsGroup -.-> rust/variable_declarations("Variable Declarations") rust/BasicConceptsGroup -.-> rust/mutable_variables("Mutable Variables") rust/BasicConceptsGroup -.-> rust/constants_usage("Constants Usage") rust/DataTypesGroup -.-> rust/integer_types("Integer Types") rust/ControlStructuresGroup -.-> rust/for_loop("for Loop") rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") rust/DataStructuresandEnumsGroup -.-> rust/method_syntax("Method Syntax") subgraph Lab Skills rust/variable_declarations -.-> lab-99266{{"Generar hilos nativos en Rust"}} rust/mutable_variables -.-> lab-99266{{"Generar hilos nativos en Rust"}} rust/constants_usage -.-> lab-99266{{"Generar hilos nativos en Rust"}} rust/integer_types -.-> lab-99266{{"Generar hilos nativos en Rust"}} rust/for_loop -.-> lab-99266{{"Generar hilos nativos en Rust"}} rust/function_syntax -.-> lab-99266{{"Generar hilos nativos en Rust"}} rust/expressions_statements -.-> lab-99266{{"Generar hilos nativos en Rust"}} rust/method_syntax -.-> lab-99266{{"Generar hilos nativos en Rust"}} end

Hilos

Rust proporciona un mecanismo para crear hilos nativos del sistema operativo a través de la función spawn, cuyo argumento es una clausura móvil.

use std::thread;

const NTHREADS: u32 = 10;

// Este es el hilo `main`
fn main() {
    // Crea un vector para almacenar los hilos hijos que se crean.
    let mut children = vec![];

    for i in 0..NTHREADS {
        // Inicia otro hilo
        children.push(thread::spawn(move || {
            println!("este es el hilo número {}", i);
        }));
    }

    for child in children {
        // Espera a que el hilo termine. Devuelve un resultado.
        let _ = child.join();
    }
}

Estos hilos serán programados por el sistema operativo.

Resumen

¡Felicidades! Has completado el laboratorio de Hilos. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.