use std::sync::{Arc, atomic::{AtomicI32, Ordering}};
use std::thread;
fn main() {
let shared_variable = Arc::new(AtomicI32::new(0));
let shared_variable_clone = shared_variable.clone();
let write_thread = thread::spawn(move || {
shared_variable_clone.store(42, Ordering::SeqCst);
});
let read_thread = thread::spawn(move || {
loop {
let value = shared_variable.load(Ordering::SeqCst);
if value != 0 {
println!("Read value: {}", value);
break;
}
}
});
write_thread.join().unwrap();
read_thread.join().unwrap();
}