본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

Hands-On Concurrency with Rust 상세페이지

Hands-On Concurrency with Rust

Confidently build memory-safe, parallel, and efficient software in Rust

  • 관심 0
소장
전자책 정가
13,000원
판매가
13,000원
출간 정보
  • 2018.05.31 전자책 출간
듣기 기능
TTS(듣기) 지원
파일 정보
  • PDF
  • 453 쪽
  • 3.7MB
지원 환경
  • PC뷰어
  • PAPER
ISBN
9781788478359
ECN
-
Hands-On Concurrency with Rust

작품 정보

▶Book Description
Most programming languages can really complicate things, especially with regard to unsafe memory access. The burden on you, the programmer, lies across two domains: understanding the modern machine and your language's pain-points. This book will teach you to how to manage program performance on modern machines and build fast, memory-safe, and concurrent software in Rust. It starts with the fundamentals of Rust and discusses machine architecture concepts. You will be taken through ways to measure and improve the 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 coordinate thread execution with locks, atomic primitives, data-parallelism, and more.

The book will show you how to efficiently embed Rust in C++ code and explore the functionalities of various crates for multithreaded applications. It explores implementations in depth. You will know how a mutex works and build several yourself. You will master radically different approaches that exist in the ecosystem for structuring and managing high-scale systems.

By the end of the book, you will feel comfortable with designing safe, consistent, parallel, and high-performance applications in Rust.

▶What You Will Learn
⦁ Probe 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/wait-free structures in Rust and understand their implementations in the crates ecosystem
⦁ Leverage Rust's memory model and type system to build safety properties into your parallel programs
⦁ Understand the new features of the Rust programming language to ease the writing of parallel programs

▶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
⦁ Learn of the various coordination methods available in the Standard library

▶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.

▶What this book covers
The material that this book covers is very broad, and it attempts to go into that material at
some depth. The material is written so that you can work straight through, but it's also
expected that some readers will only be interested in a subset of the content.

⦁ Chapter 1, Preliminaries –Machine Architecture and Getting Started with Rust, discusses modern CPU architectures, focusing specifically on x86 and ARM. These two architectures will be the focus of the book. The reader is assumed to be familiar with Rust, but we will also discuss verifying that your installation works as expected.

⦁ Chapter 2, Sequential Rust Performance and Testing, introduces inspecting the performance of a Rust program. The details of the underlying computer hardware are especially important in this: cache interactions, memory layout, and exploiting the nature of the problem domain are key to writing fast programs. However, fast doesn't matter if the results are inaccurate. This chapter also focuses on testing in Rust.

⦁ Chapter 3, The Rust Memory Model –Ownership, References and Manipulation, discusses the memory model of Rust, focusing specifically on what makes Rust memory safe, how the language is constrained to achieve such safety and how these constraints influence the fundamental types' implementations. The reader will understand the borrow checker and its ways at the close of this chapter.

⦁ Chapter 4, Sync and Send –the Foundation of Rust Concurrency, is the first in which notions of concurrency make their appearance. The chapter discusses the Sync and Send traits, both why they exist and their implications. The chapter closes with a concrete demonstration of a multithreaded Rust program. Not the last, either.

⦁ Chapter 5, Locks –Mutex, Condvar, Barriers and RWLock, introduces the coarse synchronization methods available to the Rust programmer. Each is examined in turn and demonstrated in context of an industrial Rust project, hopper. The coarse synchronization methods are elaborated on in more detail in a series of smaller projects and data structures.

⦁ Chapter 6, Atomics –the Primitives of Synchronization, introduces fine synchronization in terms of atomic primitives available on all modern CPUs. This is an exceedingly difficult topic, and a deep investigation into atomic programming and its methods is carried out. The chapter lock-free, atomic data structures, and production-grade codebases. The reader will construct many of the coarse synchronization mechanisms seen in Chapter 5, Locks –c Mutex, Condvar, Barriers and RWLock.

⦁ Chapter 7, Atomics –Safely Reclaiming Memory, discusses at length one of the key difficulties of atomic programming in any language—safely deallocating memory. The main three methods—reference counting, hazard pointers, epoch-based reclamation—are each discussed in great detail, and production-worthy codebases are investigated. Crossbeam, especially, is discussed in great detail.

⦁ Chapter 8, High-Level Parallelism –Threadpools, Parallel Iterators and Processes, motivates and
explains the implementation of thread pooling. Having this knowledge in hand, the Rayon project is investigated and subsequently used in a complex project that benefits greatly from simple data parallelism.

⦁ Chapter 9, FFI and Embedding –Combining Rust and Other Languages, extends the final project of Chapter 8, High-Level Parallelism –Threadpools, Parallel Iterators, and Processes by embedding C code into it. The rlua project, a convenient library to extend Rust programs with lua programs, is discussed. The chapter closes by compiling Rust for embedding into C, Python, and Erlang projects.

⦁ Chapter 10, Futurism –Near-Term Rust, closes the book with a discussion of the near-term changes to the language that are apropos to parallel programmers, as well as a few miscellaneous remarks.

작가 소개

⦁ Brian L. Troutwine
Brian L. 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.

리뷰

0.0

구매자 별점
0명 평가

이 작품을 평가해 주세요!

건전한 리뷰 정착 및 양질의 리뷰를 위해 아래 해당하는 리뷰는 비공개 조치될 수 있음을 안내드립니다.
  1. 타인에게 불쾌감을 주는 욕설
  2. 비속어나 타인을 비방하는 내용
  3. 특정 종교, 민족, 계층을 비방하는 내용
  4. 해당 작품의 줄거리나 리디 서비스 이용과 관련이 없는 내용
  5. 의미를 알 수 없는 내용
  6. 광고 및 반복적인 글을 게시하여 서비스 품질을 떨어트리는 내용
  7. 저작권상 문제의 소지가 있는 내용
  8. 다른 리뷰에 대한 반박이나 논쟁을 유발하는 내용
* 결말을 예상할 수 있는 리뷰는 자제하여 주시기 바랍니다.
이 외에도 건전한 리뷰 문화 형성을 위한 운영 목적과 취지에 맞지 않는 내용은 담당자에 의해 리뷰가 비공개 처리가 될 수 있습니다.
아직 등록된 리뷰가 없습니다.
첫 번째 리뷰를 남겨주세요!
'구매자' 표시는 유료 작품 결제 후 다운로드하거나 리디셀렉트 작품을 다운로드 한 경우에만 표시됩니다.
무료 작품 (프로모션 등으로 무료로 전환된 작품 포함)
'구매자'로 표시되지 않습니다.
시리즈 내 무료 작품
'구매자'로 표시되지 않습니다. 하지만 같은 시리즈의 유료 작품을 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
작품을 영구 삭제해도 '구매자' 표시는 남아있습니다.
결제 취소
'구매자' 표시가 자동으로 사라집니다.

개발/프로그래밍 베스트더보기

  • 개정2판 | 파인만의 컴퓨터 강의 (리처드 파인만, 서환수)
  • 핸즈온 LLM (제이 알아마르, 마르턴 흐루턴도르스트)
  • 모던 소프트웨어 엔지니어링 (데이비드 팔리, 박재호)
  • 시스템 설계 면접 완벽 가이드 (지용 탄, 나정호)
  • LLM 엔지니어링 (막심 라본, 폴 이우수틴)
  • 요즘 우아한 AI 개발 (우아한형제들)
  • 멀티패러다임 프로그래밍 (유인동)
  • 인공지능, 주식분석 좀 부탁해 (곽경일)
  • npm Deep Dive (전유정, 김용찬)
  • 생성형 AI를 위한 프롬프트 엔지니어링 (제임스 피닉스, 마이크 테일러)
  • 실전 ComfyUI (우희철)
  • 주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 (최범균)
  • 조코딩의 AI 비트코인 자동 매매 시스템 만들기 (조동근)
  • 제미나이 인공지능 프로그래밍 (후루카와 히데카즈, 하승민)
  • 개정판 | 혼자 공부하는 머신러닝+딥러닝 (박해선)
  • 처음 시작하는 FastAPI (빌 루바노빅, 한용재)
  • AI 에이전트 인 액션 (마이클 래넘, 류광)
  • 핸즈온 생성형 AI (오마르 산세비에로, 페드로 쿠엥카)
  • 개발자를 위한 IT 영어 온보딩 가이드 (장진호)
  • 개정4판 | 스위프트 프로그래밍 (야곰)

본문 끝 최상단으로 돌아가기

spinner
앱으로 연결해서 다운로드하시겠습니까?
닫기 버튼
대여한 작품은 다운로드 시점부터 대여가 시작됩니다.
앱으로 연결해서 보시겠습니까?
닫기 버튼
앱이 설치되어 있지 않으면 앱 다운로드로 자동 연결됩니다.
모바일 버전