Rust uses the type system to enforce synchronization of shared data. This is primarily done via two types:
Arc<T>
T
Mutex<T>