How to do it...

  1. In the folder bin, create a file called atomic.rs.

  2. 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 ...

Get Rust Standard Library Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.