Rust's approach to concurrency is rather interesting and it has evolved drastically over the years. Originally, the language had a full system of Procs and Workers with Actors and a co-routine style system similar to Go. These days Rust takes some of the best ideas from famous distributed languages like Go and Elixir such as Channels and adds in some of the more standard ideas from languages like C++ and Java in the form of the Mutex and the Arc. Keeping things relatively simple and abstraction free helps Rust have a fairly low runtime overhead which is important for a systems level programming language. You can include libraries that do implement other concurrency models such as Isolates, Actors and Co-Routines but Rust stays less opinionated on its concurrency model for the sake of keeping things trimmed down and smooth.
Ultimately, the result is a system that can seem a bit rough around the edges and superlative until you consider the implications of the Rust ownership model, Rust's strong typing system and it's very helpful compiler. In this video we look at the surface level standard library mechanisms of the Mutex, Arc, Channel and the OS Thread and we use them to create multi-threaded programs.
If you enjoy the video, feel free to follow me on Steemit or on YouTube to get updates on the channel as well as more content.
If you like what I do, tips and upvotes are welcome:
ETH: 0xE448a8DDA5886C49d35B191B2F20630c103024c8
LTC: LXsKxF5JhmMtKgqfcUFdvcXVwiaSqxN9cP
Also, feel free to check out my channel for videos on Go, Elixir and Elm