-
In the folder bin, create a file called atomic.rs.
-
Add the following code and run it with cargo run --bin atomic:
1 use std::sync::Arc;2 use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering, ATOMIC_BOOL_INIT, ATOMIC_USIZE_INIT};3 use std::thread;4 use std::ops::{Deref, DerefMut};5 use std::cell::UnsafeCell;6 7 fn main() {8 // Atomics are primitive types suited for9 // well defined concurrent behaviour10 let some_number = AtomicUsize::new(0);11 // They are usually initialized by copying them from12 // their global constants, so the following line does the same:13 let some_number = ATOMIC_USIZE_INIT;14 15 // load() gets the current value of the atomic16 // Ordering tells the compiler how exactly to handle the interactions ...