Concurrency and parallelism are important parts of modern-day programming and Rust is perfectly equipped to deal with these challenges. The borrowing and ownership model is great for preventing data races (anomalies, as they are called in the database world) since variables are immutable by default and if mutability is required, there cannot be any other reference to the data. This makes any type of concurrency safe and less complex in Rust (compared to many other languages).
In this chapter, we will cover several ways of employing concurrency to solve problems and will even look at futures, which are—at the time of writing—not part of the language yet. If you are reading this in the future (no pun intended), this may be part of the core language already and you can check out the Asynchronous programming with futures recipe for historical reference...