Hands-On Concurrency with Rust
Brian L. Troutwine
Get to grips with modern software needs by learning the effective uses of Rust's powerful memory safety
- Learn how To benchmark and improve the sequential performance characteristics of your software
- Understand the use of operating system processes in a high-scale concurrent system and manage them effectively.
- The book will explore a variety of coordination methods available in the standard library as well as a sampling of those available in the growing Crate ecosystem.
Modern computers are deeply curious machines. Although difficult, they can be exploited with languages designed for serial CPUs with care and dedication. Rust reduces the burden to the programmer without sacrificing the accuracy or performance of the computer. This book will teach you to build memory-safe and concurrent software in Rust efficiently.
The book starts with the fundamentals of Rust and discusses machine architecture concepts. You will be taken through ways to measure and improve performance of Rust code systematically and how to write collections with confidence. You will learn about the Sync and Send traits applied to threads and coordinating thread execution with locks. The book will show you how to efficiently embed Rust in C++ code and the functionalities of various crates for multithreaded applications. It will do a deep interrogation of key implementations - of a channel, mutex and skiplist - in Rust.. You will be familiarized with radically different alternative approaches that exist in the ecosystem for structuring and managing high-scale systems.
By the end, you will feel comfortable designing a safe, consistent, high-performant and concurrent application in Rust.
What you will learn
- Interactions of Rust structures with CPU caches and OS specific tooling to measure code performance
- The working of Rust's memory model to write collections - owning and referring.
- How to use built-in MPSC without hitting the common stumbling points for new Rust programmers.
- Use atomics to solve common related to scare resource management situation
- Effectively use locks available in the Rust standard library so as to use them in solving coordination problems
- Use the POSIX threading interface to perform thread pinning and the like
Who This Book Is For
This book is aimed at software engineers with a basic understanding of Rust who want to exploit the parallel and concurrent nature of modern computing environments, safely.