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
- Los hilos con scope pueden sostener referencias a la pila.
- El scope hace join de todos los hilos antes de retornar.
- No hace falta
Arcpara compartir solo lectura.
Palabras clave y builtins usados aquí
fni32letuse
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.
Paso 3 de 3 en Hilos; paso 3 de 15 en Concurrencia y async.