3479216
Ano: 2024
Disciplina: TI - Desenvolvimento de Sistemas
Banca: CESPE / CEBRASPE
Orgão: TSE
Disciplina: TI - Desenvolvimento de Sistemas
Banca: CESPE / CEBRASPE
Orgão: TSE
Provas:
use std::sync::{Arc};
use std::thread;
fn main() {
let counter = Arc::new(0);
let mut handles = vec![];
for _ in 0..10 {
let counter_clone = Arc::clone(&counter);
let handle = thread::spawn(move || {
let mut num =
counter_clone.lock().unwrap();
*num += 1;
});
handles.push(handle);
}
for handle in handles {
handle.join().unwrap();
}
println!(“Resultado final do contador: {}”,
*counter.lock().unwrap());
}
Com base no trecho de código precedente, escrito em Rust, que cria um contador, julgue o item a seguir.
A instruçãolet counter = Arc::new(0); combina exclusão mútua com contagem atômica de referência e garante acesso seguro e exclusivo a dados entre threads.