X

Hands-On Concurrency with Rust: Confidently build memory-safe, parallel, and efficient software in Rust

Product ID : 34164978


Galleon Product ID 34164978
Model
Manufacturer
Shipping Dimension Unknown Dimensions
I think this is wrong?
-
3,773

*Price and Stocks may change without prior notice
*Packaging of actual item may differ from photo shown

Pay with

About Hands-On Concurrency With Rust: Confidently Build

Product Description Effectively meet modern software demands by using Rust's safe and powerful memory model Key Features Learn and improve the sequential performance characteristics of your software Understand the use of operating system processes in a high-scale concurrent system Explore the different coordination methods available in the standard library Book Description 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. What you will learn Examine your programs for performance and accuracy issues Create your own threading and multi-processing environment in Rust Use coarse locks from Rust's standard library Solve common synchronization problems or avoid synchronization using atomic programming Build lock-free and wait-free structures in Rust and understand their implementations in the crates ecosystem Leverage Rust's memory model and type system to integrate safety properties into your parallel programs Understand the new features of the Rust programming language to ease the process of writing parallel programs Who This Book Is For 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. Table of Contents Preliminaries: Machine Architecture and Getting Started with Rust Sequential Rust Performance and Testing The Rust Memory Model: Ownership, References and Manipulation Sync and Send: the Foundation of Rust Concurrency Locks: Mutex, Condvar, Barriers and RWLock Atomics: The Primitives of Synchronization Atomics: Safely Reclaiming Memory High-Level Parallelism: Threadpools FFI and Embedding: Combining Rust and Other Languages Futurism: Near-Term Rust About the Author 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.