본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(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
UCI
-
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. 다른 리뷰에 대한 반박이나 논쟁을 유발하는 내용
* 결말을 예상할 수 있는 리뷰는 자제하여 주시기 바랍니다.
이 외에도 건전한 리뷰 문화 형성을 위한 운영 목적과 취지에 맞지 않는 내용은 담당자에 의해 리뷰가 비공개 처리가 될 수 있습니다.
아직 등록된 리뷰가 없습니다.
첫 번째 리뷰를 남겨주세요!
'구매자' 표시는 유료 작품 결제 후 다운로드하거나 리디셀렉트 작품을 다운로드 한 경우에만 표시됩니다.
무료 작품 (프로모션 등으로 무료로 전환된 작품 포함)
'구매자'로 표시되지 않습니다.
시리즈 내 무료 작품
'구매자'로 표시되지 않습니다. 하지만 같은 시리즈의 유료 작품을 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
작품을 영구 삭제해도 '구매자' 표시는 남아있습니다.
결제 취소
'구매자' 표시가 자동으로 사라집니다.

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

  • AI 에이전트 엔지니어링 (마이클 알바다, 강민혁)
  • 요즘 바이브 코딩 클로드 코드 완벽 가이드 (최지호(코드팩토리))
  • 유리링의 실전 게임 시스템 기획 (정윤지(유리링))
  • 바이브 코딩 너머 개발자 생존법 (애디 오스마니, 강민혁)
  • 밑바닥부터 만들면서 배우는 LLM (세바스찬 라시카, 박해선)
  • 데이터 엔지니어링 디자인 패턴 (바르토시 코니에치니, 김인범)
  • 요즘 당근 AI 개발 (당근 팀)
  • 러스트로 갈아타기 (릴리 마라, 조엘 홈즈)
  • 파이썬 AI 애플리케이션 개발 (라셸 파머, 벤 펄머터)
  • 데이터베이스 설계, 이렇게 하면 된다 (미크, 윤인성)
  • 혼자 공부하는 바이브 코딩 with 클로드 코드 (조태호)
  • 개정2판 | 소프트웨어 아키텍처 The Basics (마크 리처즈, 닐 포드)
  • 프로그램을 읽는 기술 (이와마츠 히로시, 나민성)
  • 그림으로 이해하는 도커와 쿠버네티스 (토쿠나가 코헤이 , 서수환)
  • 기획에서 출시까지 FastAPI 개발 백서 (차경묵 )
  • 요즘 개발자를 위한 시스템 설계 수업 (디렌드라 신하 , 테자스 초프라)
  • 개정판 | Do it! 점프 투 파이썬 (박응용)
  • 테디노트의 랭체인을 활용한 RAG 비법노트 심화편 (이경록)
  • AI 에이전트 인 액션 (마이클 래넘, 류광)
  • 테디노트의 랭체인을 활용한 RAG 비법노트_기본편 (이경록(테디노트))

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

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