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
- El closure corre en el hilo nuevo de inmediato.
joinbloquea hasta que ese hilo termina.- El valor de retorno del closure vuelve a través de
join.
Palabras clave y builtins usados aquí
ErrOkfnletmatchu64use
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.
Paso 1 de 3 en Hilos; paso 1 de 15 en Concurrencia y async.