Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.56 KB | None | 0 0
  1. use std::sync::{
  2. atomic::{AtomicUsize, Ordering},
  3. Arc,
  4. };
  5.  
  6. use std::thread::spawn;
  7.  
  8. fn main() {
  9. let x1 = Arc::new(AtomicUsize::new(0));
  10. let x2 = x1.clone();
  11.  
  12. let t1 = spawn(move || {
  13. x1.store(1, Ordering::Relaxed);
  14. x1.store(2, Ordering::Relaxed);
  15. });
  16.  
  17. let t2 = spawn(move || {
  18. loop {
  19. match x2.load(Ordering::Relaxed) {
  20. 1 => {println!("1");break;},
  21. 2 => {println!("2");break;},
  22. }
  23. }
  24.  
  25. });
  26.  
  27.  
  28. t2.join().unwrap();
  29. t1.join().unwrap();
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement