Cargando…

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

Writing safe and correct parallel programs is tough. Reasoning about concurrent memory modification is tough; efficiently exploiting the modern computing environment (with its multi-layered caches and deep execution pipelines) is also tough. Most systems programming languages add a further complicat...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: L. Troutwine, Brian
Formato: Electrónico eBook
Idioma:Inglés
Publicado: Birmingham : Packt Publishing, 2018.
Temas:
Acceso en línea:Texto completo

MARC

LEADER 00000cam a2200000Mi 4500
001 EBOOKCENTRAL_on1039680680
003 OCoLC
005 20240329122006.0
006 m o d
007 cr cnu---unuuu
008 180609s2018 enk o 000 0 eng d
040 |a EBLCP  |b eng  |e pn  |c EBLCP  |d MERUC  |d IDB  |d CHVBK  |d NLE  |d TEFOD  |d OCLCQ  |d LVT  |d UKAHL  |d OCLCQ  |d K6U  |d N$T  |d NZAUC  |d OCLCQ  |d OCLCL  |d TMA  |d OCLCQ 
020 |a 9781788478359  |q (electronic bk.) 
020 |a 1788478355  |q (electronic bk.) 
029 1 |a AU@  |b 000066230449 
029 1 |a CHNEW  |b 001016541 
029 1 |a CHVBK  |b 523135386 
035 |a (OCoLC)1039680680 
037 |a A740B3DF-D89E-48FB-BA3B-50487B0ADD77  |b OverDrive, Inc.  |n http://www.overdrive.com 
050 4 |a QA76.73.R87  |b .T768 2018eb 
082 0 4 |a 005.133  |2 23 
049 |a UAMI 
100 1 |a L. Troutwine, Brian. 
245 1 0 |a Hands-On Concurrency with Rust :  |b Confidently build memory-safe, parallel, and efficient software in Rust. 
260 |a Birmingham :  |b Packt Publishing,  |c 2018. 
300 |a 1 online resource (453 pages) 
336 |a text  |b txt  |2 rdacontent 
337 |a computer  |b c  |2 rdamedia 
338 |a online resource  |b cr  |2 rdacarrier 
588 0 |a Print version record. 
505 0 |a Cover; Title Page; Copyright and Credits; Dedication; Packt Upsell; Contributors; Table of Contents; Preface; Chapter 1: Preliminaries -- Machine Architecture and Getting Started with Rust; Technical requirements; The machine; The CPU; Memory and caches; Memory model; Getting set up; The interesting part; Debugging Rust programs; Summary; Further reading; Chapter 2: Sequential Rust Performance and Testing; Technical requirements; Diminishing returns; Performance; Standard library HashMap; Naive HashMap; Testing with QuickCheck; Testing with American Fuzzy Lop. 
505 8 |a Performance testing with CriterionInspecting with the Valgrind Suite; Inspecting with Linux perf; A better naive HashMap; Summary; Further reading; Chapter 3: The Rust Memory Model -- Ownership, References and Manipulation; Technical requirements; Memory layout; Pointers to memory; Allocating and deallocating memory; The size of a type; Static and dynamic dispatch; Zero sized types; Boxed types; Custom allocators; Implementations; Option; Cell and RefCell; Rc; Vec; Summary; Further reading; Chapter 4: Sync and Send -- the Foundation of Rust Concurrency; Technical requirements; Sync and Send. 
505 8 |a Racing threadsThe flaw of the Ring; Getting back to safety; Safety by exclusion; Using MPSC; A telemetry server; Summary; Further reading; Chapter 5: Locks -- Mutex, Condvar, Barriers and RWLock; Technical requirements; Read many, write exclusive locks -- RwLock; Blocking until conditions change -- condvar; Blocking until the gang's all here -- barrier; More mutexes, condvars, and friends in action; The rocket preparation problem; The rope bridge problem; Hopper-an MPSC specialization; The problem; Hopper in use; A conceptual view of hopper; The deque; The Receiver; The Sender. 
505 8 |a Testing concurrent data structuresQuickCheck and loops; Searching for crashes with AFL; Benchmarking; Summary; Further reading; Chapter 6: Atomics -- the Primitives of Synchronization; Technical requirements; Linearizability; Memory ordering -- happens-before and synchronizes-with; Ordering::Relaxed; Ordering::Acquire; Ordering::Release; Ordering::AcqRel; Ordering::SeqCst; Building synchronization; Mutexes; Compare and set mutex; An incorrect atomic queue; Options to correct the incorrect queue; Semaphore; Binary semaphore, or, a less wasteful mutex; Summary; Further reading. 
505 8 |a Chapter 7: Atomics -- Safely Reclaiming MemoryTechnical requirements; Approaches to memory reclamation; Reference counting; Tradeoffs; Hazard pointers; A hazard-pointer Treiber stack; The hazard of Nightly; Exercizing the hazard-pointer Treiber stack; Tradeoffs; Epoch-based reclamation; An epoch-based Treiber stack; crossbeam_epoch::Atomic; crossbeam_epoch::Guard::defer; crossbeam_epoch::Local::pin; Exercising the epoch-based Treiber stack; Tradeoffs; Summary; Further reading; Chapter 8: High-Level Parallelism -- Threadpools, Parallel Iterators and Processes; Technical requirements. 
500 |a Thread pooling. 
520 |a Writing safe and correct parallel programs is tough. Reasoning about concurrent memory modification is tough; efficiently exploiting the modern computing environment (with its multi-layered caches and deep execution pipelines) is also tough. Most systems programming languages add a further complication: unsafe memory access. The burden on you ... 
590 |a eBooks on EBSCOhost  |b EBSCO eBook Subscription Academic Collection - Worldwide 
590 |a ProQuest Ebook Central  |b Ebook Central Academic Complete 
650 0 |a Rust. 
650 0 |a Programming languages. 
650 7 |a Portable & handheld devices: consumer/user guides.  |2 bicssc 
650 7 |a Mobile phones: consumer/user guides.  |2 bicssc 
650 7 |a Parallel processing.  |2 bicssc 
650 7 |a Programming & scripting languages: general.  |2 bicssc 
650 7 |a Computers  |x Programming  |x Parallel.  |2 bisacsh 
650 7 |a Computers  |x Hardware  |x Handheld Devices.  |2 bisacsh 
650 7 |a Computers  |x Programming Languages  |x C.  |2 bisacsh 
758 |i has work:  |a Hands-on concurrency with Rust (Text)  |1 https://id.oclc.org/worldcat/entity/E39PCFMhChDv37wKbQD7ctbfMP  |4 https://id.oclc.org/worldcat/ontology/hasWork 
776 0 8 |i Print version:  |a L. Troutwine, Brian.  |t Hands-On Concurrency with Rust : Confidently build memory-safe, parallel, and efficient software in Rust.  |d Birmingham : Packt Publishing, ©2018 
856 4 0 |u https://ebookcentral.uam.elogim.com/lib/uam-ebooks/detail.action?docID=5405682  |z Texto completo 
938 |a Askews and Holts Library Services  |b ASKH  |n BDZ0036924765 
938 |a EBL - Ebook Library  |b EBLB  |n EBL5405682 
938 |a EBSCOhost  |b EBSC  |n 1823655 
994 |a 92  |b IZTAP