Introdução
Neste laboratório, temos um fragmento de código em Rust que demonstra como criar threads nativas do sistema operacional usando a função spawn e um fecho (closure) móvel. O código cria um vetor para armazenar as threads criadas, itera através de um intervalo de números para criar várias threads e imprime uma mensagem identificando o número de cada thread. Finalmente, a thread principal aguarda o término de cada thread criada usando a função join.
Nota: Se o laboratório não especificar um nome de arquivo, você pode usar qualquer nome de arquivo que desejar. Por exemplo, você pode usar
main.rs, compilar e executar comrustc main.rs && ./main.
Threads
Rust fornece um mecanismo para criar threads nativas do sistema operacional por meio da função spawn, cujo argumento é um fecho (closure) móvel.
use std::thread;
const NTHREADS: u32 = 10;
// Esta é a thread principal
fn main() {
// Crie um vetor para armazenar as threads filhas criadas.
let mut children = vec![];
for i in 0..NTHREADS {
// Inicie outra thread
children.push(thread::spawn(move || {
println!("esta é a thread número {}", i);
}));
}
for child in children {
// Aguarde a conclusão da thread. Retorna um resultado.
let _ = child.join();
}
}
Essas threads serão agendadas pelo sistema operacional.
Resumo
Parabéns! Você concluiu o laboratório de Threads. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.