Hands-On Concurrency with Rust
2018년 05월 31일 출간
- eBook 상품 정보
- 파일 정보 PDF (3.55MB)
- ISBN 9781788478359
- 지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
-
교보eBook App
듣기(TTS) 가능
TTS 란?텍스트를 음성으로 읽어주는 기술입니다.
- 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를 읽을 수 있습니다.
- 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
PDF 필기가능 (Android, iOS)
쿠폰적용가 11,700원
10% 할인 | 5%P 적립이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.
카드&결제 혜택
- 5만원 이상 구매 시 추가 2,000P
- 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
- 리뷰 작성 시, e교환권 추가 최대 200원
작품소개
이 상품이 속한 분야
1: PRELIMINARIES ? MACHINE ARCHITECTURE AND GETTING STARTED WITH RUST
2: SEQUENTIAL RUST PERFORMANCE AND TESTING
3: THE RUST MEMORY MODEL ? OWNERSHIP, REFERENCES AND MANIPULATION
4: SYNC AND SEND ? THE FOUNDATION OF RUST CONCURRENCY
5: LOCKS ? MUTEX, CONDVAR, BARRIERS AND RWLOCK
6: ATOMICS ? THE PRIMITIVES OF SYNCHRONIZATION
7: ATOMICS ? SAFELY RECLAIMING MEMORY
8: HIGH-LEVEL PARALLELISM ? THREADPOOLS, PARALLEL ITERATORS AND PROCESSES
9: FFI AND EMBEDDING ? COMBINING RUST AND OTHER LANGUAGES
10: FUTURISM ? NEAR-TERM RUST
▶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.
▶Editorial Review
Welcome. The aim of this book is to teach beginner and moderate Rust programmers how to exploit modern parallel machines in the Rust programming language. This book will contain a variety of information relevant specifically to the Rust programming language, especially with regard to its standard library, but it will also contain information that is more generally applicable but happens to be expressed in Rust. Rust itself is not a terribly inventive language. Its key contribution, from where I sit, is the mainstreaming of affine types with application to memory allocation tracking. In most other respects, it is a familiar systems programming language, one that ought to feel familiar―twith a bit of adjustment―to those with a background in GC-less programming languages. This is a good thing, considering our aim here is to investigate concurrency―there is a wealth of
information available in the papers and books written about this subject, and we understand and apply their concepts. This book will reference a number of such works, whose contexts are C++, ATS, ADA, and similar languages.
인물정보
저자(글) 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.
이 상품의 총서
Klover리뷰 (0)
- - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- - 리워드는 5,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (2024년 9월 30일부터 적용)
- - 리워드는 한 상품에 최초 1회만 제공됩니다.
- - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
구매 후 리뷰 작성 시, e교환권 100원 적립
문장수집
- 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
- e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- 리워드는 5,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (2024년 9월 30일부터 적용)
- 리워드는 한 상품에 최초 1회만 제공됩니다.
- sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.
구매 후 문장수집 작성 시, e교환권 100원 적립
신규가입 혜택 지급이 완료 되었습니다.
바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!