Hilos
Los hilos de Rust funcionan de forma similar a los de otros lenguajes:
use std::thread; use std::time::Duration; fn main() { thread::spawn(|| { for i in 1..10 { println!("Count in thread: {i}!"); thread::sleep(Duration::from_millis(5)); } }); for i in 1..5 { println!("Main thread: {i}"); thread::sleep(Duration::from_millis(5)); } }
- Los hilos son todos hilos daemon, y el hilo principal no espera por ellos.
- Los pánicos de los hilos son independientes entre sí.
- Los pánicos pueden transportar una carga útil, que se puede desempaquetar con
downcast_ref
.
- Los pánicos pueden transportar una carga útil, que se puede desempaquetar con
Puntos clave:
-
Notice that the thread is stopped before it reaches 10 — the main thread is not waiting.
-
Utiliza
let handle = thread::spawn(...)
y, después,handle.join()
para esperar a que el hilo termine. -
Activa un pánico en el hilo y observa cómo esto no afecta a
main
. -
Usa el valor devuelto
Result
dehandle.join.()
para acceder a la carga útil del pánico. Este es un buen momento para hablar sobreAny
.