Confidently build memory-safe, parallel, and efficient software in Rust
Brian L. Troutwine

#Concurrency
#Rust
#memory_safe
#C++
#Condvar
#RWLock
#Threadpools
Effectively meet modern software demands by using Rust's safe and powerful memory model
Most programming languages can be challenging to work with, especially with regard to unsafe memory access. Moreover, the burden on you as a programmer involves two aspects: understanding the modern machine and your language's pain points. To help you tackle this, Hands-On Concurrency with Rust will guide you on how to manage program performance on modern machines and build fast, memory-safe, and concurrent software in Rust.
The book starts with the fundamentals of Rust and focuses on machine architecture concepts. You will then explore ways to measure and improve the performance of Rust code systematically and how to confidently write collections. As you progress, you will learn about the Sync and Send traits applied to threads, and coordinate thread execution with locks, atomic primitives, data-parallelism, and more. The book will also assist you in efficiently embedding Rust in C++ code, before helping you discover the functionalities of different crates for multithreaded applications. In later chapters, you'll go on to understand the implementations of lock-free and wait-free structures. You will also get up to speed with how a mutex works, along with learning to build them yourself. Finally, you'll master radically different approaches that exist in the ecosystem for structuring and managing high-scale systems.
By the end of this book, you will have gained the expertise you need to design safe, consistent, parallel, and high-performance applications in Rust.
This book is for software engineers with a basic understanding of Rust, who want to safely use the parallel and concurrent nature of modern computing environments.
Brian Troutwine's professional focuses on real-time, fault-tolerant and critical software in high-scale and/or embedded systems. He is a frequent international public speaker on these topics. He knows many programming languages but works primarily in Erlang/OTP, C++, Rust, Haskell.
He is keenly interested in building reliable, real-time systems that have to cope with some extreme or another. He is also fascinated both by the constraints of embedded machines and networked systems. He spends time engineering custom software for unusual problem domains.









