Texto 1 de 2
Aprendemos desde cedo que a linguagem verbal serve para comunicar e frequentemente dizemos que o importante é a comunicação. Quando se fala em comunicação, muitas vezes, pensamos que se está falando na transmissão de informações. Comunicar não se limita, entretanto, a transmitir informações. Realmente, há momentos em que desejamos apenas fornecer uma informação, mas, muito frequentemente, temos outros objetivos, como: dar uma ordem, expressar um sentimento, fazer um pedido, exercer algum tipo de influência, fazer o outro mudar de opinião...
O ser humano vive em sociedade, isto é, fazemos parte de grupos sociais e agimos em conjunto com nossos semelhantes; interagimos. Na verdade, é para interagir que nos comunicamos, falamos e escrevemos. Por isso, não podemos nos esquecer de que a comunicação, ou a interação, envolve mais do que simplesmente informação; envolve, sobretudo, alguma forma de ação sobre o outro.
Fonte: Ana Lúcia Tinoco Cabral. A força das palavras. São Paulo: Editora Contexto, 2010, p. 10-11 (com adaptações).
Texto 2 de 2
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ção let 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.