typestar

Hilos con scope en Rust

thread::scope deja que los hilos presten datos locales: no pueden sobrevivir al scope.

use std::thread;

fn main() {
    let scores = vec![91, 104, 87, 96];

    thread::scope(|s| {
        s.spawn(|| {
            let total: i32 = scores.iter().sum();
            println!("sum {total}");
        });
        s.spawn(|| {
            println!("max {:?}", scores.iter().max());
        });
    });

    println!("still ours: {:?}", scores);
}

Cómo funciona

  1. Los hilos con scope pueden sostener referencias a la pila.
  2. El scope hace join de todos los hilos antes de retornar.
  3. No hace falta Arc para compartir solo lectura.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
17
Caracteres a escribir
271
Tokens
104
Ritmo de tres estrellas
100 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →