typestar

Crear hilos en Rust

spawn arranca un hilo y devuelve un handle; join espera y recoge su valor.

use std::thread;

fn main() {
    let worker = thread::spawn(|| {
        let total: u64 = (1..=1_000).sum();
        total
    });

    println!("main keeps working");

    match worker.join() {
        Ok(total) => println!("worker said {total}"),
        Err(_) => println!("worker panicked"),
    }
}

Cómo funciona

  1. El closure corre en el hilo nuevo de inmediato.
  2. join bloquea hasta que ese hilo termina.
  3. El valor de retorno del closure vuelve a través de join.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
15
Caracteres a escribir
252
Tokens
81
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 49 segundos.

Escribe este fragmento

Paso 1 de 3 en Hilos; paso 1 de 15 en Concurrencia y async.

Siguiente →